Quando decidimos lançar o Midaz, nosso ledger open source para sistemas financeiros, sabíamos que abrir o código era apenas o primeiro passo. Para entregar liberdade de verdade para quem constrói fintechs e infraestrutura bancária, precisávamos ir além da documentação e da API. Precisávamos criar SDKs que facilitassem a integração, aumentassem a confiabilidade e acelerassem a entrega real de valor.
Este artigo é um convite para olhar os bastidores dessa construção e entender por que, para nós, SDK não é um wrapper. É um produto estratégico que carrega nossos princípios de arquitetura e compromisso com a comunidade dev.
No coração do Midaz
O Midaz é um ledger contábil imutável, double-entry, multi-moeda e modular, projetado para lidar com fluxos financeiros complexos, desde transferências e simulações até reconciliação e trilhas de auditoria. Mas sabíamos que, por melhor que fosse a arquitetura do backend, havia um desafio prático à frente:
Como diminuir a barreira de entrada para quem precisa integrar rapidamente um core banking robusto?
A resposta não está só em REST ou gRPC. Está na experiência de quem está com a mão no teclado tentando entregar uma operação em produção.
O que aprendemos com os times de produto dos nossos clientes
Ao acompanhar nossos parceiros, identificamos pontos recorrentes que dificultam a integração com sistemas financeiros:
- Documentações longas, mas rasas;
- APIs inconsistentes ou pouco expressivas;
- Falta de exemplos práticos de uso;
- Ausência de suporte a cenários reais: retries, concorrência, falhas de rede, etc.
Esses obstáculos não são técnicos, são estratégicos. Porque tempo perdido na integração é valor não entregue.
SDKs como produto e não como acessório
Com isso em mente, criamos os SDKs oficiais do Midaz em Go e TypeScript com premissas muito claras:
1. Validação no cliente
Não faz sentido enviar um payload malformado para o servidor se o erro já poderia ser pego antes. Validamos estrutura, campos obrigatórios e tipos com mensagens claras para o dev.
2. Retry inteligente
Sistemas financeiros precisam lidar com falhas transitórias. Implementamos backoff exponencial, jitter e categorização de erros para garantir resiliência sem gerar ruído.
3. Paginação e concorrência
Processar grandes volumes não é “caso extremo” é o dia a dia. Nossos SDKs lidam com isso de forma nativa, controlando chamadas concorrentes e evitando estouros de memória.
4. Performance e observabilidade
Incluímos pooling de JSON, modularização de logs e suporte a OpenTelemetry para tracing distribuído. O dev não precisa abrir mão de visibilidade para ter performance.
5. Casos reais, não só endpoints
A documentação só é considerada completa quando inclui exemplos de uso concretos. Queremos que o dev veja o código e diga: “é assim que eu faria também”.
6. Design idiomático
No SDK de Go, usamos opções funcionais para configuração. No SDK de TypeScript, apostamos em tipagem forte e integração fluida com ferramentas modernas de frontend e backend.
Open source como compromisso
Na Lerian, open source não é uma vitrine, é um modelo de desenvolvimento. Por isso, manter SDKs abertos exige coerência, estabilidade e uma documentação pensada para quem quer usar, entender e contribuir.
Os SDKs do Midaz são parte central da nossa estratégia de Developer Experience. Eles ajudam a levar a robustez do nosso core para o ambiente real dos nossos clientes, com velocidade e segurança.
Vamos construir o futuro financeiro juntos?
#letsledgertogether