Kotlin serve para backend?

Serve e serve muito bem! Se você acha que Kotlin é só pra Android, está na hora de rever esse conceito. A linguagem vem conquistando cada vez mais espaço no desenvolvimento do lado do servidor, e com razão.

Por que usar Kotlin no backend?

Kotlin roda na JVM, então herda toda a robustez e o ecossistema maduro do Java. Mas vai além, oferecendo:

  • Código mais enxuto: menos boilerplate significa mais produtividade
  • Null safety: adeus NullPointerException em produção às 3 da manhã
  • Coroutines: programação assíncrona eficiente e elegante
  • Interoperabilidade com Java: use qualquer biblioteca Java existente

Se você quer entender melhor o que são coroutines, temos um glossário completo sobre o tema. E para quem quer se aprofundar no conceito de null safety, vale a leitura também.

Os frameworks mais populares

Ktor

Criado pela JetBrains, é um framework leve e assíncrono feito sob medida pra Kotlin. Ideal pra microsserviços e APIs:

import io.ktor.server.application.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.response.*
import io.ktor.server.routing.*

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") {
                call.respondText("Fala, dev! A API tá no ar!")
            }

            get("/produtos") {
                val produtos = listOf(
                    mapOf("id" to 1, "nome" to "Notebook", "preco" to 3500.0),
                    mapOf("id" to 2, "nome" to "Mouse", "preco" to 89.90)
                )
                call.respond(produtos)
            }
        }
    }.start(wait = true)
}

Ktor brilha especialmente quando você quer ter controle total sobre o que está incluído no projeto. Diferente de frameworks opinados, ele funciona como um conjunto de plugins que você adiciona conforme a necessidade: autenticação, serialização, CORS, WebSockets. Se o seu cenário é construir microsserviços enxutos ou APIs de alta performance, Ktor é uma escolha excelente. Temos um guia completo de Ktor para backend e também um tutorial prático de Ktor para quem quer começar.

Spring Boot

O framework mais usado no mundo corporativo tem suporte oficial a Kotlin desde 2017. Se você já conhece Spring em Java, a transição é suave:

@RestController
class ProdutoController(private val repository: ProdutoRepository) {

    @GetMapping("/produtos")
    fun listarTodos(): List<Produto> = repository.findAll()

    @PostMapping("/produtos")
    fun criar(@RequestBody produto: Produto): Produto = repository.save(produto)
}

Spring Boot é a escolha natural para projetos corporativos de grande porte. Ele traz um ecossistema gigante com soluções para segurança (Spring Security), mensageria (Spring AMQP), batch processing e muito mais. Se você quer se aprofundar, confira nosso guia de Spring Boot com Kotlin e o tutorial de Spring Boot.

Comparando Ktor e Spring Boot

AspectoKtorSpring Boot
Tamanho do projetoLeve, modularRobusto, muitas dependências
Curva de aprendizadoMais simples para quem conhece KotlinMais simples para quem já conhece Spring
CoroutinesSuporte nativoSuporte via WebFlux/coroutines
EcossistemaEm crescimentoMaduro e vasto
Ideal paraMicrosserviços, APIs rápidasAplicações enterprise, monolitos

Quem usa Kotlin no backend?

Empresas de peso já adotaram Kotlin no servidor:

  • Amazon usa Kotlin em vários serviços internos
  • Netflix migrou partes do backend pra Kotlin
  • Mercado Livre tem times utilizando Kotlin no backend
  • Nubank (que é muito forte em Clojure) também tem frentes com Kotlin

No Brasil, startups e fintechs estão puxando essa tendência, mas empresas maiores também estão entrando nessa. Bancos digitais, plataformas de e-commerce e empresas de logística têm adotado Kotlin para novos serviços, especialmente quando precisam de alta performance e código mais legível.

Banco de dados e ORM

Pra trabalhar com banco de dados em Kotlin, as opções não faltam:

  • Exposed: ORM feito pela JetBrains, leve e idiomático
  • Spring Data JPA: funciona perfeitamente com Kotlin
  • jOOQ: geração de código type-safe pra consultas SQL

Aqui vai um exemplo prático com Exposed, mostrando como definir uma tabela e fazer uma consulta:

object Produtos : Table() {
    val id = integer("id").autoIncrement()
    val nome = varchar("nome", 255)
    val preco = double("preco")

    override val primaryKey = PrimaryKey(id)
}

fun listarProdutosBaratos(): List<String> {
    return transaction {
        Produtos.select { Produtos.preco less 100.0 }
            .map { it[Produtos.nome] }
    }
}

Para entender melhor como classes e collections funcionam em Kotlin (conceitos fundamentais para trabalhar com ORMs), vale consultar nosso glossário.

Deploy e infraestrutura

Uma vantagem enorme do Kotlin no backend é que o deploy funciona exatamente como qualquer aplicação JVM. Você pode:

  • Gerar um JAR executável e rodar em qualquer servidor com Java instalado
  • Empacotar com Docker usando imagens baseadas em OpenJDK
  • Fazer deploy em serviços de nuvem como AWS, GCP ou Azure sem nenhuma configuração especial
  • Usar GraalVM para compilação nativa e tempo de startup ultrarrápido

Se você quer aprender mais sobre containerização, temos um guia de Kotlin com Docker e um guia de CI/CD que cobrem esse fluxo completo. Para quem está interessado em arquitetura de microsserviços, o guia de microsserviços com Kotlin é leitura obrigatória.

Vale a pena migrar?

Se você já tem um backend em Java, a migração pode ser feita gradualmente, arquivo por arquivo, graças à interoperabilidade. Não precisa reescrever tudo de uma vez. Muitos times começam escrevendo os novos módulos em Kotlin e vão convertendo o código antigo aos poucos.

Uma estratégia comum em empresas brasileiras é definir que todo código novo deve ser escrito em Kotlin, enquanto o código Java existente só é convertido quando precisa de manutenção significativa. Dessa forma, a migração acontece organicamente, sem interromper entregas.

Para quem está pensando em dar esse passo, nosso guia completo de Kotlin cobre desde os fundamentos até tópicos avançados, e o artigo sobre Kotlin ou Java pode ajudar a convencer o time.

O Kotlin no backend não é modinha: é uma tendência consolidada que traz ganhos reais de produtividade e qualidade de código. Se você está pensando em experimentar, o momento é agora.