Defina primeiro um contrato semântico para eventos, correlação e resultados. Cada runtime implementa esse contrato por adapters próprios, enquanto o domínio permanece independente do destino de telemetria.
Comece pelas perguntas
Quais decisões precisam ser reconstruídas durante um incidente? Qual intenção iniciou o fluxo? Qual resultado foi produzido? Sem perguntas claras, aumentar o volume de logs apenas aumenta o custo de busca.
Modele eventos com significado
Um evento útil registra intenção, contexto e resultado. Nomes devem representar acontecimentos do produto, e campos precisam manter a mesma semântica em Kotlin, TypeScript, Python, Go, .NET ou qualquer outro runtime.
Use correlação entre fronteiras
Propague um identificador de correlação quando um fluxo atravessar aplicação, fila ou serviço. A correlação permite reconstruir a jornada sem depender de timestamps aproximados ou buscas manuais.
Separe domínio e telemetria
O caso de uso informa o que aconteceu. Um adapter decide como converter esse acontecimento em log, métrica, trace ou envio para uma plataforma externa. Assim, mudar o fornecedor não altera regras de negócio.
Valide consumidores independentes
Em um ecossistema multiplataforma, exemplos executáveis e aplicações consumidoras revelam diferenças de ergonomia e integração que testes isolados da biblioteca não mostram.
Ecossistema DrManhattan
Construa observabilidade consistente entre plataformas.
Conheça o trabalho open source ou aplique a abordagem à sua arquitetura.
Explorar DrManhattan