Skip to content

Desenvolvimento Clojure

Desenvolvimento Clojure para Times de Engenharia

Plataformas de backend, APIs, integrações e pipelines de dados em Clojure — projetados para serem operados e compreendidos por quem herdar o sistema.

transducta.core
(defn handler [requisicao]
  (-> requisicao
      validar
      transacionar
      responder))

Highlights

  • Backend e APIs

    Serviços HTTP, plataformas internas, consumidores de eventos e integrações, com contratos documentados e testados.

  • Pipelines de dados

    Ingestão, transformação e entrega de dados com transducers, filas e lotes previsíveis.

  • ClojureScript

    Desenvolvimento e manutenção de frontends em ClojureScript quando já é a ferramenta certa para o time.

O que construímos

A maior parte do trabalho em Clojure assume poucas formas reconhecíveis: um serviço HTTP na frente de um banco, um consumidor de eventos reagindo a Kafka ou a uma fila, um pipeline agendado movendo e transformando dados, ou uma camada de integração entre sistemas que nunca foram feitos para conversar.

O objetivo de design é sempre o mesmo: manter os dados explícitos, empurrar os efeitos colaterais para as bordas e deixar o comportamento interessante fácil de testar sem depender de um cluster rodando.

  • APIs REST e HTTP, com GraphQL quando justificado
  • Serviços orientados a eventos com Kafka ou SQS
  • Pipelines em lote e em streaming
  • Integrações com terceiros e camadas anticorrupção
  • Modelagem de dados em Datomic e PostgreSQL
  • Interoperabilidade com Java dentro de plataformas JVM

Práticas que acompanham o código

Entrega não é apenas pull request aprovado. Cada trabalho chega com o que o torna seguro de operar: testes no nível que realmente pega regressão, logs estruturados, métricas nos caminhos que importam e um plano claro de rollback.

Schemas e validação ficam nas fronteiras do sistema, onde dados não confiáveis entram. Configuração, segredos e diferenças de ambiente são tratados de forma explícita.

  • Desenvolvimento com REPL e testes rodando em CI
  • Validação nas fronteiras do sistema
  • Logs estruturados, métricas e traces
  • Pull requests pequenos e revisáveis
  • Documentação escrita para o próximo engenheiro

Frequently asked questions

Vocês constroem sistemas novos ou só evoluem os existentes?
Os dois. Serviços de backend e APIs novos são construídos do zero, e sistemas em produção são estendidos e evoluídos — este segundo caso é o mais comum.
Como vocês se integram ao nosso processo?
Usamos o seu repositório, a sua estratégia de branches, o seu processo de revisão e o seu gerenciador de tarefas.

Tem algo para construir em Clojure?

Descreva o sistema e o problema. Você fala direto com o engenheiro que faria o trabalho.