Consultor independente · Disponível para novos projetos
Arquitetura para sistemas onde falhar não é uma opção.
Sou Jonathan Troncoso. Há mais de dez anos desenho e conduzo a arquitetura de plataformas críticas no setor financeiro — núcleo bancário, pagamentos, crédito e seguros. Trabalho na fronteira entre a decisão de negócio e a topologia técnica que a sustenta: decomposição de domínio, modernização de legado, plataforma em nuvem e, agora, engenharia orientada a agentes.
Arquitetura não é diagrama. É a consequência que você aceita carregar.
Boa parte do custo de um sistema financeiro não vem da tecnologia escolhida, mas da fronteira mal traçada entre domínios. Um limite errado se paga por anos em acoplamento, transação distribuída e mudança que ninguém consegue estimar. Meu trabalho começa antes do código: entender o negócio com profundidade suficiente para saber onde o corte dói menos.
A partir daí, tudo é decisão registrada e consequência assumida — contexto, decisão, trade-off, o que se ganha e o que se perde. Uso DDD para achar as costuras, C4 e BIAN para comunicar em linguagem que negócio e regulador entendem, e contratos explícitos para que a fronteira sobreviva ao time que a desenhou. Depois, garanto que o padrão não fique no documento: ele vira código gerado, teste e verificação automática.
Ambientes regulados, alto volume transacional, legado de missão crítica
Entregável
Context map, ADRs, blueprint C4, contratos, plataforma e o código de referência rodando
Idiomas
Português · English · Español
Superfície de decisão
02Projeto em destaque
A plataforma que transforma escopo de negócio em serviço em produção.
Arsenale Agentico · plataforma de engenharia agêntica
Do documento de negócio ao microsserviço íntegro, sem passar pela erosão do padrão.
Concebi e construí uma plataforma de engenharia orientada a agentes que cobre o ciclo inteiro: um agente arquiteto lê o escopo de negócio em linguagem natural e devolve um context map DDD com bounded contexts, agregados e integrações; esse mapa vira spec rígida e contract-first; agentes geradores materializam o microsserviço completo — Clean Architecture, vertical slice, camadas de domínio, aplicação, dados e borda, ACL sobre o legado, mensageria com outbox, retry e DLQ; e uma camada de governança valida conformidade arquitetural, contratos e containerização antes de qualquer merge. O que antes dependia da disciplina individual de cada squad virou propriedade executável da plataforma.
Contexto
Portfólio com dezenas de serviços, times distribuídos e um padrão arquitetural que existia como documento, não como restrição. Cada novo serviço reabria as mesmas discussões e cada squad interpretava o padrão de um jeito. O custo não estava em escrever código: estava em revisar, corrigir e reconciliar divergência estrutural depois que já era tarde.
Decisão
Codificar o padrão como agentes especializados e determinísticos em vez de treinamento e revisão manual. Decomposição de domínio, síntese de spec, geração de serviço e verificação de conformidade viraram etapas executáveis, versionadas e parametrizáveis por stack — .NET, Java/Spring e Node — com o mesmo modelo arquitetural em todas.
Consequências
O tempo entre escopo aprovado e serviço rodando com testes, container e pipeline caiu de semanas para horas, e a revisão de arquitetura deixou de ser arqueologia para virar leitura de decisão. Em troca, a plataforma passa a ser um ativo com dono: os agentes precisam evoluir junto com o padrão, e desvio deliberado exige ADR explícito — o que é, na prática, o comportamento desejado.
0no lead time entre escopo e serviço rodando
0dos serviços gerados em conformidade verificada
0stacks suportadas sob o mesmo modelo arquitetural
0etapas automatizadas, do intake ao pipeline
02·BModo de adoção
Ou os agentes vêm até o Jira que você já usa.
A objeção mais comum a uma plataforma de engenharia não é técnica, é organizacional: ninguém quer trocar a ferramenta onde o processo de tecnologia já vive. Por isso o Arsenale Agentico tem dois modos de adoção, e o segundo é o que a maioria das empresas procura — os agentes não pedem que o time mude de lugar, eles entram no lugar onde o time já está. O Confluence passa a ser a fonte de escopo de negócio, produto e base de conhecimento; o Jira, o processo real de Scrum de onde o trabalho nasce e para onde ele volta; e o GitHub, a fonte de verdade do código e do padrão que já está de pé. Os agentes leem desses três, trabalham, e devolvem o resultado para dentro deles.
Modo 1
Plataforma dedicada
O ambiente próprio do Arsenale, com o Agent Room como superfície de operação. Faz sentido quando não existe um processo consolidado a preservar, quando o piloto precisa correr fora do fluxo oficial, ou quando a empresa quer avaliar a plataforma antes de acoplá-la a qualquer coisa.
Modo 2 · recomendado
Embarcado no Jira, Confluence e GitHub
Os agentes entram como parte do processo que já existe. Nada de portal novo, nada de migrar conteúdo, nada de pedir ao time que aprenda outra ferramenta. O épico continua sendo aberto no Jira, a página de escopo continua no Confluence, o merge continua no GitHub — o que muda é que o caminho entre eles deixa de ser trabalho manual.
Jira
Confluence
GitHub
Scrum
Sem migração
O ganho não é o agente escrever código — isso qualquer ferramenta promete. O ganho é que a decisão de arquitetura nasce ligada ao épico que a motivou, o contrato nasce revisável antes de existir implementação, o serviço nasce dentro do padrão da casa, e a verificação de conformidade acontece antes do pull request e não na revisão de alguém cansado numa sexta-feira. O rastro entre a intenção de negócio escrita no Confluence e o commit que entrou no GitHub deixa de ser reconstruído por arqueologia e passa a existir por construção.
03Segundo destaque
Do Figma ao app, industrializado.
Entre o Figma e o app existe um gargalo caro e repetitivo: cada tela é reimplementada à mão olhando o design, ninguém sabe sem abrir o Figma o que já foi feito e o que falta, trocar de identidade obriga a retrabalhar tudo, e a navegação vive na cabeça de alguém em vez de num artefato consultável. Transformei esse gargalo numa linha de produção — arquitetura de super-app, design system e implementação de telas conduzidos por agentes, com fidelidade ao design e validação em dispositivo.
0telas reais construídas a partir do Figma
0jornadas completas de um mini-app financeiro
0telas implementadas em paralelo por agentes
0plataformas com render validado em device
01
Arquitetura de super-app
React Native com Module Federation: um host carrega mini-apps federados em runtime, cada um desenvolvido, versionado e implantado por um time independente. O Design System entra por módulo, não como singleton federado — host e mini-apps podem rodar versões ou marcas diferentes ao mesmo tempo, que é o que torna rebrand gradual e whitelabel possíveis. O runtime de federation já vem endurecido: compartilhamento de dependências, resolução de chunks por plataforma e bytecode em release.
React Native 0.81
React 19
Module Federation v2
Re.Pack + rspack
Hermes
02
dsc-forge — o Design System gerado por IA
Um gerador que produz ou retematiza o Design System do app a partir de um site, de tokens, de um arquivo de design ou do próprio Figma: paleta, tipografia, escala de espaçamento e tokens aplicados em todos os componentes, sempre em tema claro e escuro. Tem preview mobile dos componentes antes de publicar, refino por conversa com versionamento da saída, download das fontes reais e um script que leva fontes e assets prontos para os projetos mobile.
Tamagui
Token-driven
Tema claro e escuro
Multi-marca
Docker
03
Flow Mapper — do Figma à jornada implementável
O ponto de virada, e o que dispensa qualquer captura de tela. O time de design seleciona os nodes no Figma e cola a lista de links; o Flow Mapper lê a estrutura real pela API e classifica cada node em tela, seta de navegação ou anotação do designer — anotação não é tela e é ignorada. Depois monta a sequência da jornada com as ligações derivadas das setas, associa cada tela ao template certo do Design System e salva tudo em arquivo consultável. Um log de duplicados marca o que já foi processado, então nada é reimplementado.
API do Figma
flow.json
templates.json
Mermaid
Log de duplicados
04
Implementação por IA — tela a tela, ao vivo
Com a jornada mapeada, um agente cuida de cada tela pendente: lê o design real daquele node — textos, itens e valores, sem chutar conteúdo —, compõe com os componentes reais do Design System em vez de desenhar do zero, baixa e versiona os assets, escreve a tela no padrão do projeto, registra a navegação e valida o build. Telas independentes são construídas em paralelo, e o plano mostra o que já está feito contra o que falta, com a página se atualizando sozinha de pendente para em andamento e para feito.
Subagentes
Paralelização
Navegação amarrada
Build verificado
iOS + Android
Por que é diferente
Lê a estrutura do Figma, não uma imagem, e por isso distingue tela de seta e de anotação. Constrói sobre o Design System em vez de reproduzir pixel a pixel, então as telas nascem consistentes, temáveis e acessíveis. É rastreável de verdade: manifesto do que existe, plano de pendências e log de duplicados. Marca vira parâmetro, não projeto. E validação em dispositivo faz parte da entrega — build verde e tela renderizada, não uma promessa de que deve funcionar.
O que foi comprovado
Numa implementação de referência de um mini-app de consórcio dentro de um super-app financeiro: cerca de dezesseis telas construídas a partir do Figma em duas jornadas, cada uma fiel ao design — barra superior, cartões de oferta, badges de status, filtros, seção de valores, histórico de pagamentos, detalhe da parcela. A classificação automática separou telas reais de setas e de anotações numa seleção de quinze a dezessete nodes. Até dez telas de uma jornada foram implementadas concorrentemente. A navegação ficou amarrada de ponta a ponta, o bundle compilou sem erros e o render foi verificado em iOS e Android. E o app inteiro foi repontado para outra versão do Design System, com re-tematização completa, sem alterar o código das telas.
O que isso custa em troca
O ganho não é escrever tela mais rápido — é transformar design-to-code em processo industrial: rastreável, fiel, reaproveitável e verificável. Em troca, o Design System deixa de ser documentação e passa a ser dependência de produção: se ele não tiver o template, a fábrica para. O board do Figma precisa ser disciplinado, porque a classificação lê estrutura e não adivinha intenção. E a fábrica é um ativo com dono — precisa evoluir junto com o Design System e com o padrão do projeto, sob pena de gerar tela que já nasce fora de padrão.
Formatos de contratação desta frente
Auditoria e blueprint
Avalio o Figma, o Design System e a arquitetura mobile, e entrego o plano para industrializar o design-to-code.
Fundação de super-app
Monto a arquitetura de host com mini-apps federados e o Design System temável por módulo.
Fábrica de telas, por jornada
Do Figma ao app: mapeio a jornada e implemento as telas sobre o Design System, com navegação e validação em dispositivo.
Rebrand e whitelabel
Retematizo o app inteiro com um Design System novo, sem retrabalhar as telas.
Capacitação
Instalo o processo e as ferramentas no seu time, com transferência de propriedade.
04Casos
Onde a decisão de arquitetura foi a entrega.
Clientes e marcas omitidos por acordo — setor, país e período preservados. O que interessa aqui não é o logotipo: é a restrição que existia antes, a decisão estrutural que a resolveu e o que essa decisão custou em troca.
Arsenale Agentico · módulo Agent RoomEngenharia de plataforma · produto próprio · Brasil
Ver o agente trabalhar, não só o artefato no fim.
O Agent Room não é um produto separado: é a superfície do Arsenale Agentico que mostra como os agentes estão se comportando enquanto executam. Cada agente especializado — decomposição de domínio, síntese de spec, geração de serviço, verificação de conformidade — aparece com o que leu, o que decidiu, em que etapa está e onde travou. O ciclo descrito na seção anterior deixa de ser inferido pelo resultado e passa a ser observado em curso.
O que a superfície mostra
Contexto
Pipeline de agentes é caixa-preta por natureza: entra um escopo, sai um serviço, e o meio é opaco. Quando a geração diverge do padrão arquitetural, não dá para saber em qual etapa a interpretação escorregou — e, sem isso, o diagnóstico vira tentativa e erro sobre o resultado final.
Decisão
Expor o comportamento de cada agente em execução como dado de primeira classe: entrada consumida, decisão tomada, etapa corrente e ponto de parada, emitidos por etapa e não apenas no fim do ciclo.
Consequências
Uma execução passa a ser comparável com a outra e o desvio fica localizado na etapa exata em que o padrão deixou de ser respeitado — que é a informação necessária para corrigir o agente, não o código gerado. Em troca, a superfície vira parte do contrato da plataforma: agente novo que não emite comportamento nasce cego.
Observabilidade
Agentes especializados
Rastro por etapa
Diagnóstico de desvio
Superfície do projeto apresentado na seção anterior. Ambiente restrito, sem indexação.Banca conversacional com IA · arquitetura agêntica e ADRs baselineBanco de varejo de conglomerado internacional · Chile · ambiente sob regulador financeiro local
Duas malhas no mesmo banco, e a fronteira entre elas é a arquitetura toda.
Desenho da arquitetura de uma banca conversacional com IA sobre dez casos de uso — boas-vindas contextual, análise de gastos, venda proativa de crédito, retenção, cobrança com refinanciamento, prevenção de mora, alerta de fraude, desbloqueio biométrico, investimento de saldo ocioso e disputa de cobrança não reconhecida — priorizados por complexidade de raciocínio exigida do agente, cruzada com regime de latência e perfil de risco. O ponto de partida não foi adotar um modelo de linguagem: foi reconhecer que o banco passou a operar duas malhas de comunicação com perfis de tráfego incompatíveis. A malha transacional síncrona determinística vive abaixo de duzentos milissegundos, com payload em kilobytes e fluxo linear, servindo doze canais humanos através de gateway, BFF por canal e camada anticorrupção sobre os cores legados. A malha agêntica tem latência de dois a cento e vinte segundos, payload em megabytes correspondente ao context window inteiro, fluxo não-determinístico com chamadas de ferramenta em laço, e a obrigação de propagar a identidade do cliente original através de múltiplos saltos entre agentes. Toda a arquitetura de nove camadas — dos canais agênticos à borda paralela, ao runtime de agentes, ao roteador e planejador, ao gate de política determinístico, aos doze servidores MCP tipados, à integração e aos cores — existe para sustentar essa separação sem duplicar lógica de leitura.
A fronteira entre as duas malhas
Contexto
Promover agentes para dentro do gateway interno da malha transacional degradaria o SLA do canal humano: um agente em laço consome as mesmas APIs de core que atendem doze canais em produção. Ao mesmo tempo, construir uma exposição paralela completa duplicaria lógica de leitura de forma inaceitável. As duas malhas se cruzam num único ponto — o gateway de ferramentas, que precisa invocar as mesmas APIs de core — e é essa fronteira, não o modelo de linguagem, que decide se a coisa toda funciona.
Decisão
Quatro decisões acopladas, cada uma precondição ou consequência das outras. A exposição do core é híbrida: leitura reusa as APIs anticorrupção existentes sob um identificador de consumidor agêntico próprio, com disjuntor dedicado para que um agente em laço jamais alcance o canal humano; escrita passa por um servidor de ação dedicado que injeta chave de idempotência derivada do identificador de correlação, propaga a correlação e carrega o identificador de consentimento. O roteamento de modelos segue mistura de modelos por papel — modelo forte no roteador de intenção, no planejador e nos subagentes de negociação, cobrança, investimento e disputa; modelo leve nos subagentes de resposta dialógica, síntese e classificação sobre vocabulário fechado — com retorno automático ao modelo forte quando a confiança cai ou a saída estruturada falha na validação de esquema. Escritas distribuídas usam saga orquestrada com estado durável e compensações como ferramentas tipadas explícitas, escolhida sobre coreografia porque auditoria regulatória exige um rastro por saga e não uma reconstrução por agregação de eventos. E a aprovação humana obedece a uma matriz de quatro dimensões — valor financeiro, tipo de ação, perfil do cliente e risco contextual — com o risco contextual funcionando como sobreposição não negociável.
Consequências
O raio de dano das escritas agênticas fica isolado e cada caminho ganha SLA próprio, ao custo de manter temporariamente dois caminhos de escrita e de sincronizar governança de esquema entre eles — mitigado com teste de contrato automatizado e registro de esquema versionado. O roteamento por papel corta a conta de inferência de forma material sem perder qualidade nos papéis críticos, mas transforma política de modelo em código versionado e exige suíte de avaliação por papel rodando continuamente. A saga orquestrada entrega um rastro auditável por operação, consumível por conformidade sem agregação, e em troca torna o orquestrador ponto crítico, com recuperação por releitura de estado e engenharia de caos periódica. E a matriz de aprovação humana preserva a experiência nos casos de baixo impacto e a segurança nos de alto, ao preço de governança contínua: a matriz é revisada trimestralmente por arquitetura, risco e conformidade, e precisa permanecer alinhada à matriz de aprovação dos canais humanos, sob pena de o mesmo cliente receber tratamento diferente conforme a porta de entrada. Três princípios ficaram inegociáveis: o modelo nunca decide sozinho, decide por ferramenta tipada e governada; o modelo nunca calcula valor financeiro, busca o número no serviço determinístico; e a identidade do cliente atravessa todos os saltos, com o canal de atendimento carregando simultaneamente a identidade do operador, a do cliente e o consentimento gravado.
Arquitetura agêntica
MCP · tools tipadas
Saga orquestrada
Human-in-the-loop
OAuth 2.0 Token Exchange
Policy-as-Code
Mistura de modelos
Observabilidade de agentes
Kafka · Redis
ADR
Nomes de cliente, de cores legados e de padrões corporativos internos omitidos por acordo.Arquitetura corporativa · avaliação e desenho de soluçãoBanco de varejo · Chile · Região Metropolitana de Santiago
Arquitetura corporativa num banco onde o legado não pode parar.
Condução de avaliação de arquitetura e definição de solução corporativa para as linhas de negócio de um banco de varejo chileno, com a responsabilidade de desenhar a arquitetura conceitual, liderar o time técnico de arquitetura e sustentar uma estratégia tecnológica de longo prazo ancorada no objetivo comercial — não no catálogo de ferramentas. O escopo técnico incluía definir e defender a solução que atendesse simultaneamente desempenho, escalabilidade, flexibilidade, operação e capacidade, num parque que mistura Java e SpringBoot com Kotlin, Python em Django e Flask e serviços em NodeJS, rodando sobre WebSphere 9, Liberty e Tomcat, com JPA e Hibernate na persistência, IBM MQ na integração assíncrona, Maven e Ant no build, JSF com PrimeFaces e IceFaces nas telas herdadas, Netflix Hystrix e Spring Cloud na resiliência distribuída, aplicações baseadas em OSGi e a persistência repartida entre Oracle, MongoDB e PostgreSQL.
Onde a decisão entra
Contexto
Banco de varejo em praça regulada, com parque heterogêneo acumulado por décadas: servidor de aplicação corporativo convivendo com serviços novos, três bancos de dados com modelos distintos e times de negócio pedindo velocidade que a topologia herdada não entrega. Decisão de arquitetura ali não é escolha de stack — é negociação entre o que o negócio precisa e o que a operação suporta sem janela.
Decisão
Tratar a arquitetura como função corporativa e não como revisão pontual de projeto: avaliação formal de arquitetura antes do compromisso, desenho conceitual como artefato próprio, liderança direta do time técnico de arquitetura e estratégia tecnológica de longo prazo escrita a partir do objetivo comercial de cada linha de negócio.
Consequências
O escopo técnico passa a ser definido e defendido antes da estimativa, o que desloca a discussão de prazo para o momento em que ela ainda é barata. O custo é que a função de arquitetura vira gargalo se não tiver time e mandato — por isso liderar o time técnico fazia parte do desenho, não era acessório.
Java · SpringBoot · Kotlin
Python · Django · Flask
NodeJS
WebSphere 9 · Liberty · Tomcat
JPA · Hibernate
IBM MQ
Spring Cloud · Hystrix
OSGi
Oracle · MongoDB · PostgreSQL
Arquitetura corporativa
Padrão arquitetural · guia de desenvolvimento da equipeAdministradora de consórcio de banco público · Brasil
Mil operações de legado viradas em API de negócio, sem um único evento.
Desenho do padrão arquitetural de referência — MASA, BIAN-like, cem por cento API síncrono — e do guia de desenvolvimento que a equipe usa como referência diária, para modernizar a plataforma de consórcio sobre um núcleo legado que continua rodando. O catálogo de partida tem 94 domínios e 389 endpoints documentados em três APIs sobre ASP.NET Core com JWT Bearer: o módulo de autoatendimento do consorciado, com 22 domínios e 109 endpoints, que sustenta o Mini App; o módulo de atendimento, núcleo de back-office e domínio mestre da cota, com 67 domínios e 236 endpoints detalhados dentro de uma plataforma que declara mais de mil endpoints; e o módulo de venda, front de originação da jornada de simulação à proposta assinada, com 5 domínios e 44 endpoints. A matriz de serviços de domínio cobre 1.083 operações. O ciclo de vida da cota está inteiro ali: assembleia, contemplação, lance, cobrança, negociação de dívida em dezesseis subdomínios especializados, amortização por FGTS, alienação fiduciária, seguro e sinistro, transferência, devolução e encerramento. O mapeamento das telas do Mini App contra o catálogo fechou em 12 telas cobertas pela API do consorciado, 6 atendidas apenas pelo back-office e 7 sem endpoint correspondente — lacuna declarada em vez de descoberta em produção.
A rota sobe de estado, nunca salta
Contexto
Um núcleo legado de consórcio com mais de mil endpoints, times distribuídos e um padrão que existia como documento. Sem restrição executável, cada squad interpretava fronteira de domínio do seu jeito, lia banco alheio quando era mais rápido e vazava código de erro do legado para dentro do contrato público — dívida que só aparece quando já é estrutural.
Decisão
Um domínio, um microsserviço, um banco — database-per-service, sem leitura de base alheia nem do legado, cujo acesso passa obrigatoriamente por uma camada anticorrupção que traduz contrato, estado e erro e nada mais. Contract-first sempre: nenhuma linha antes do OpenAPI revisado, rota canônica em linguagem de negócio, escopos OIDC por domínio, escrita com Idempotency-Key e envelope de erro canônico em application/problem+json preservando o código de origem. Nenhuma fila, evento, barramento ou CDC: colaboração entre domínios é chamada síncrona orquestrada com compensação, o que empurra a disponibilidade para a disciplina das chamadas de saída — timeout de 3 segundos em consulta e 10 em comando com budget decrescente na cadeia, retry só em idempotente com duas tentativas e backoff exponencial com jitter, circuit breaker abrindo a 50% de falha em 30 segundos e meia-abertura em 15, cache read-through com TTL de 5 a 15 minutos em dado confidencial e até 24 horas em dado público. Toda rota nasce embrulhando o legado e sobe de estado por checklist auditado no Domain Route Registry, no padrão strangler fig, até paridade comprovada e descomissionamento.
Consequências
O padrão deixa de ser treinamento e vira gate: quebra de compatibilidade de contrato bloqueia o build, promoção de estado de rota tem gate próprio e o pull request só passa com rota registrada, escopo e classe de dado conferidos contra o catálogo, replay de idempotência testado, compensação testada, correlação ponta a ponta e métricas RED por operação. Rastreabilidade sem evento exige que o correlationId nasça na borda e atravesse inclusive a chamada ao legado, com traces em OpenTelemetry. O preço declarado é rigidez deliberada: quem precisar de assíncrono não improvisa uma fila no PR — leva à arquitetura, porque introduzir tópico é violação de princípio, não detalhe de implementação.
MASA · BIAN-like
100% API síncrono
Contract-first · OpenAPI
Database-per-service
ACL sobre legado
Strangler Fig
Domain Route Registry
OIDC · Idempotency-Key
Circuit breaker · bulkhead
OpenTelemetry · RED
ASP.NET Core
Azure API Management · Key Vault
Números conforme o catálogo de domínios e o guia de desenvolvimento produzidos no engajamento.Orquestração de vendas · discovery e arquitetura de plataformaMontadora automotiva · Brasil · rede de concessionárias
Cada concessionária com um sistema diferente, e uma interface só.
Arquitetura de uma plataforma de orquestração de vendas que cobre a jornada do lead até a proposta assinada numa rede de concessionárias: recepção e normalização do lead, qualificação assistida por IA, sincronização com o CRM da concessionária, consulta de estoque no sistema de gestão do revendedor, visão unificada do cliente, simulação financeira, geração e versionamento de proposta com assinatura digital, devolução de status ao CRM de origem e, ao final, próxima melhor ação sugerida ao vendedor a partir da camada analítica. A plataforma se organiza em seis camadas — cliente em navegador e tablet, camada de borda com autenticação, autorização por papel, resolução de inquilino, agregação e limitação de taxa, serviços de domínio para lead, cliente, estoque, proposta, financiamento, pagamentos e trabalhos assíncronos, um hub de integração, uma camada de dados em arquitetura de medalhão até a camada de serviço, e a camada de IA — com o frontend nunca tocando o backend diretamente. Onze componentes têm responsabilidade, entradas, saídas e dependências mapeadas uma a uma, e treze sistemas externos entram no mapa com fase, conector e status declarados.
Uma interface, um adaptador por sistema
Contexto
O dado comercial não vive na montadora: vive fragmentado nos sistemas de cada concessionária, um por revendedor, sem padronização — plataformas distintas de gestão de revenda concentrando lead, cadastro de cliente, histórico comercial, agenda e estoque, cada uma com sua própria API. A versão anterior da arquitetura assumia um único CRM corporativo como sistema de integração; a confirmação de que o piloto rodaria sobre dois CRMs de concessionária distintos, mais um sistema de gestão de estoque de terceiro, invalidou essa premissa antes da primeira linha de código.
Decisão
Estender o padrão de adaptador, já decidido para os sistemas de estoque, também ao conector de CRM: duas interfaces comuns, uma por família de sistema, com um adaptador por fornecedor implementando os mesmos métodos de sincronizar, buscar, criar no sistema externo e obter histórico. A seleção acontece em tempo de execução por um campo de provedor registrado no cadastro da concessionária, resolvido por fábrica — o serviço de domínio nunca sabe qual sistema externo está ativo. A tradução é unidirecional por regra: o adaptador traduz o modelo canônico para a API externa, nunca o inverso; erro de quatro centos, cinco centos ou tempo esgotado é capturado no adaptador, normalizado para uma exceção de integração canônica e repassado ao disjuntor; e o adaptador não contém nenhuma regra de negócio de domínio, é exclusivamente camada de tradução de protocolo. O modelo canônico carrega identificador externo, inquilino, provedor e correlação como chaves obrigatórias, e a matriz de direção de dados declara, por domínio, quem é o sistema mestre, o que entra, o que sai, se há devolução de status e qual a restrição de dado pessoal.
Consequências
Trocar o CRM de uma concessionária deixa de impactar o serviço de domínio ou a camada de borda, e um sistema novo entra como arquivo de adaptador novo, sem reescrita de lógica de negócio. O custo declarado é que a interface precisa estar definida antes do primeiro sprint de construção — é bloqueante para o desenvolvimento dos adaptadores, e por isso virou condição de entrada de fase, não item de backlog. A alternativa rejeitada foi explícita: conector direto para o CRM do primeiro piloto com refatoração posterior, descartada porque o custo de reescrita supera o de abstrair desde o discovery. Ficou registrado, junto com a decisão, o que ainda não estava decidido — provedor de nuvem em avaliação, versionamento de API, disjuntor por biblioteca de aplicação em vez de malha de serviço, funcionamento offline do tablet por cache local, assinatura digital condicionada a jurídico, propriedade da plataforma de dados e o papel do CRM corporativo. Declarar a pendência com prazo e responsável, em vez de assumir premissa, é o que impede que a decisão de arquitetura seja tomada por omissão no meio da construção.
Adapter pattern
Modelo canônico
C4 Model
BFF · API Gateway
Multi-tenant
Medalhão · bronze a serving
Circuit breaker · DLQ
Write-back de status
LGPD
Next Best Action
ADR · Risk Log
Montadora, executora e fornecedores de sistema omitidos por acordo.Hub de abastecimento · alocado por consultoria de TI brasileiraOperação multinacional de benefícios e mobilidade · Brasil · canal B2B2C via bancos digitais
Um hub que distribuía eventos precisava virar dono de sessão.
Análise de lacunas e desenho do estado alvo de um hub de integração de abastecimento embarcado no aplicativo de bancos parceiros, para estendê-lo do combustível líquido à recarga de veículo elétrico. O hub existente é uma camada de orquestração posicionada acima do processador de autorização proprietário: a etiqueta de rádio no para-brisa se comunica com o terminal do posto por protocolo próprio, o terminal pede autorização ao processador, e só depois de liquidada a transação o hub recebe o evento e o distribui para o motor de preço em tempo real, o motor de benefícios e a API do parceiro. Cinco características desse desenho impedem uma sessão de carga elétrica: o hub é sem estado e pós-fato, há um único protocolo de captura, há um único tipo de abastecimento, a notificação ao parceiro é um gancho único de fim de transação sem ciclo de vida, e a liquidação é síncrona e de valor fechado. O trabalho identificou sete capacidades novas e três adaptações, e desenhou a sessão como máquina de estados explícita — identificada, confirmada, pré-autorizada, carregando, encerrando, capturada, conciliada — com ramos de suspensão, recusa e disputa.
A sessão passa a ter ciclo de vida
Contexto
A sessão elétrica é longa, multiprotocolo e de valor desconhecido no início — o oposto exato do modelo de autorização única e valor fechado do combustível. O carregador fala um protocolo aberto sobre conexão persistente, com início remoto, leituras de medidor ao longo do tempo e encerramento; alcançar rede de terceiros exige assumir o papel de provedor de mobilidade elétrica sob outro protocolo padronizado, com módulos de token, localização, sessão, registro de detalhe de carga e tarifa. Nada disso cabe num gancho de fim de transação. E a identificação por placa, que é o diferencial de baixo atrito do produto, tem um problema que nenhuma arquitetura resolve sozinha: placa é dado público e clonável.
Decisão
Seis decisões registradas. A placa identifica mas não autoriza: a sessão exige confirmação explícita do motorista no aplicativo do banco como segundo fator, com alternativa de rádio ou código no próprio carregador, e antifraude mínimo cruzando placa lida, geolocalização do carregador e janela temporal da sessão. A cobertura entra primeiro por roaming como provedor de mobilidade, com um piloto fino de gestão própria de carregadores mantido em paralelo para que a competência interna não atrofie e a dependência de terceiro não vire refém. O pagamento troca autorização única por reserva de valor máximo e captura do valor real medido, com captura parcial, expiração de reserva e cobrança separada de ociosidade — construído sobre o mecanismo de autorização pré-aprovada e régua de cobrança que já existia e já estava homologado, em vez de um trilho novo. A coordenação é saga com estado no hub, escolhida sobre coreografia por auditabilidade, com fila de mensagens mortas para falha de captura e divergência de registro de carga. Um roteador de abastecimento agnóstico com adaptadores plugáveis entra já como abstração, com apenas o adaptador elétrico ativo, para que o combustível volte depois atrás do mesmo contrato. E a jornada vive numa aplicação web embarcada servida por uma camada de borda do parceiro, reusando o canal de mensagens que o aplicativo já implementa, com uma ponte nativa fina isolando o que autoriza valor: credencial, número de cartão e chave nunca transitam na camada embarcada.
Consequências
A superfície de fraude cai drasticamente ao custo de um toque na jornada, e cria dependência de notificação em tempo real entre banco e hub — mantendo aberto o caminho para identificação autônoma por placa numa fase posterior, condicionada a pontuação de risco madura. O roaming entrega cobertura rápida com custo de equipamento diferido, em troca de menos controle de experiência e de granularidade de dado, e de depender da conciliação de registro de carga do operador. A reserva de valor alinha o trilho financeiro à natureza da sessão e reaproveita mecanismo homologado, reduzindo risco de certificação, mas introduz gestão de reservas órfãs — sessão abandonada ou conexão caída — que exige expiração e tempo limite em cada transição de estado. A saga dá ponto único de verdade e auditoria ao preço de o hub assumir complexidade de orquestração e idempotência. E a jornada embarcada faz um único código servir qualquer banco e permite iterar experiência sem novo lançamento de aplicativo, em troca de a homologação de segurança de cada banco entrar no caminho crítico do cronograma. Os quatro riscos vigiados foram nomeados junto com sua mitigação: clonagem de placa, divergência entre leitura de medidor, registro do operador e captura financeira, reservas órfãs, e indisponibilidade do operador no roaming.
OCPP · OCPI
Papel de eMSP · roaming
Identidade por placa · ANPR
Pré-autorização e captura
Saga · máquina de estados
Roteador agnóstico · adaptadores
mTLS · OAuth2 · OIDC
WebView + bridge nativo
Reconciliação de CDR
DLQ
Cliente final, consultoria, marcas de produto e bancos parceiros omitidos por acordo.Programa de fidelidade · consultoria de arquitetura de bandeira globalBandeira global de pagamentos · piloto para banco de varejo · República Dominicana
A pergunta não é como pagar com milhas. É onde se decide usá-las.
Apoio de arquitetura e produção do desenho técnico de solução, pela vertical de consultoria digital de uma bandeira global de pagamentos, para habilitar a experiência de milhas dentro do aplicativo de um banco de varejo. O estado inicial era assimétrico: saldo e movimentos viviam numa plataforma de fidelidade de mercado que é a autoridade única do saldo, com uma conta de milhas por cliente agregando todos os cartões daquele titular; o acúmulo chegava por arquivo em lote do core de cartões, com as regras aplicadas dentro da própria plataforma de fidelidade; e o resgate existia em banco pela internet, central de atendimento e agência de viagens — mas não no aplicativo, que é justamente o vazio que o piloto endereça. A arquitetura alvo é estritamente em camadas, com o aplicativo falando com a camada de gateway responsável por segurança, política e roteamento, que encaminha a microsserviços em contêiner, que por sua vez têm a plataforma de fidelidade como sistema de registro; o core de cartões e o core contábil só participam quando há efeito transacional ou contábil, e nunca em consulta pura. A ordem de prioridade de engenharia é reutilizar antes de construir: três microsserviços já existentes cobrem consulta de saldo e movimentos, orquestração de simulação, resgate, estornos e ajustes, e resolução segura do identificador do cartão.
Três hipóteses, um piloto isolado
Contexto
A pergunta que organiza a discussão inteira, e que precisa ser comunicada de forma simples ao banco, é onde se decide o uso da milha — porque o custo de acoplamento cresce conforme a decisão se aproxima do ponto físico de aceitação. Decidir no checkout implica o máximo acoplamento com a rede: terminal, caixa registradora, adquirente, switch, rede da bandeira, processador de cartões, mensageria de autorização não padrão e pagamento dividido, além de depender do comércio para qualquer mudança de comportamento. Decidir num instrumento digital reduz o atrito na aceitação mas cria um segundo livro-razão, com risco material de divergência de saldo entre ele e a plataforma de fidelidade, além de exposição contábil, tributária e regulatória. Decidir na credencial, com seleção de fonte de recursos por transação, é o caminho estrategicamente mais alinhado — mas envolve modelagem de fonte de recursos, APIs próprias e suporte do processador.
Decisão
Separar o piloto do aplicativo das três hipóteses e tratá-lo como núcleo isolado, com o ponto de venda como fase futura de descoberta própria, a carteira como produto novo com descoberta posterior, e a credencial flexível como descoberta prioritária conduzida em paralelo sem acoplar ao piloto. A plataforma de fidelidade permanece a autoridade única do saldo e nenhum canal mantém cópia autoritativa. Microsserviços existentes são reaproveitados como primeira opção, construindo novo apenas mediante brecha comprovada. Nenhum desenho depende de divisão nativa entre milhas e outra fonte na mesma autorização sem confirmação formal da bandeira e do processador — quando a divisão for necessária, resolve-se por autorização parcial com pagamento dividido ou por resgate posterior à compra, que é a melhor alternativa tática justamente por não exigir mudança no ponto de aceitação. Toda operação que altera saldo é idempotente e tem caminho de compensação explícito, com máquina de estados cobrindo simulado, pendente, reservado, confirmado, parcialmente aprovado, estornado, compensado, falho, expirado, disputado e conciliado. E nenhuma conversão de milha em valor monetário entra em produção antes de validação formal das áreas contábil, tributária e regulatória do banco.
Consequências
O piloto entrega valor cedo — milhas visíveis e, conforme o alcance definido, simulação e resgate no aplicativo — sem ficar refém de decisões de rede, produto e regulação que levarão mais tempo. Manter a autoridade única de saldo elimina divergência por canal e concentra a regra de acumulação onde ela já está, ao custo de toda leitura e escrita depender da disponibilidade e da latência dessa plataforma. Exigir idempotência e compensação evita duplo débito e consumo de milha sem compra, mas obriga chave de idempotência, máquina de estados e matriz de estornos definidas desde o contrato, não depois. E condicionar a conversão a validação formal protege o banco de exposição fiscal e regulatória ao preço de transformar a conversão num portão que depende de áreas fora de tecnologia. A fronteira de responsabilidade foi mantida assimétrica de propósito e precisa permanecer assim em toda a documentação: a consultoria apoia arquitetura e desenho técnico; o banco é dono das regras de negócio, do alcance do piloto, da taxa de conversão, da experiência, da segurança, dos ambientes e da operação. Nenhuma decisão de negócio, conversão ou regulação foi assumida pela consultoria sem validação formal das áreas internas — e as pendências que restaram foram registradas como pendências, com premissa conservadora e nenhuma delas tratada como decisão tomada.
System of record único
Idempotência e compensação
Máquina de estados
OpenAPI · correlationId
ISO 8583
Autorização parcial · split tender
Resgate pós-compra
Microsserviços em contêiner
Observabilidade p95 · p99
ADR
Bandeira, banco cliente e plataformas de terceiros omitidos por acordo.Integração corporativa · alocado por consultoria de TI brasileiraBenefícios corporativos e gestão de frota · Brasil, com auditoria em Argentina, Chile e México
Trocar o barramento proprietário sem perder a certificação.
Atuação como arquiteto de soluções alocado por consultoria de TI brasileira numa operação multinacional de benefícios corporativos e meios de pagamento de frota, respondendo pelo time técnico de desenvolvimento e pelos fornecedores externos. O escopo cobria os produtos de frete e pedágio e os cartões de vale-refeição e alimentação, com liderança técnica do desenho e da construção do aplicativo de gestão de frota em iOS e Xamarin, front em Angular e back em Node.js, sobre uma base .NET em C# com MVC no front e DDD no domínio, além de serviços em WCF. A integração corporativa saiu da orquestração em BizTalk Server para Apache Camel e Apache Kafka, e as integrações com SAP e Totvs cobriam ABAP orientado a objetos, Web Dynpro, RFC e BAPI, NetWeaver e ECC, e os módulos MM e PM, incluindo integração de dispositivos móveis com o NetWeaver. A camada de exposição rodava sobre Sensedia API Management. Em paralelo, migração de API REST em Java para API REST em .NET, troca de JBoss por GlassFish nas operações de Colômbia, Brasil e México, ETL em SQL Server 2008 R2 e prova de conceito com Apache Cassandra, Hadoop, Spark e HBase para cenários de alto volume.
Trocar o trilho sem perder o selo
Contexto
Operação de meios de pagamento sob dupla obrigação regulatória: certificação PCI para o processamento de cartão e ISO 27001 junto à agência reguladora de transporte terrestre para os produtos de frete e pedágio. Ao mesmo tempo, a integração corporativa dependia de um barramento proprietário caro em licença e lento em latência, e o parque estava espalhado entre servidores de aplicação e stacks diferentes por país.
Decisão
Substituir a orquestração proprietária por Apache Camel e Apache Kafka em vez de renovar a licença, mantendo a conformidade como restrição de projeto e não como auditoria posterior: obter a certificação PCI para os cartões das duas bandeiras internacionais e sustentar a recertificação da ISO 27001 junto ao regulador enquanto a plataforma mudava de barramento. Padronizar a exposição sob um API Management único e convergir os servidores de aplicação entre as operações de país.
Consequências
Custo e latência de integração caíram com a saída do barramento proprietário, e a conformidade sobreviveu à troca — resultado auditado por equipe internacional formada por auditores das operações da França e do México, que revisou os processos de TI de Argentina, Chile e Brasil. Em contrapartida, o desenho passou a depender de disciplina de integração distribuída onde antes havia uma ferramenta única com garantia de fornecedor, e a gestão de fornecedores externos virou parte explícita do papel de arquitetura.
PCI DSS
ISO 27001
BizTalk → Camel + Kafka
.NET · C# · MVC · DDD · WCF
Angular · Node.js
iOS · Xamarin
SAP ECC · NetWeaver · ABAP OO
SAP MM · PM · RFC · BAPI
Totvs
Sensedia API Management
Cassandra · Hadoop · Spark · HBase
JBoss → GlassFish
Empresas omitidas por acordo; setor, país e período preservados.Guest & Ops · plataforma em produçãoResort de cerca de 450 unidades · Olímpia (SP) · operação 24/7
Cada ação do hóspede vira, na hora, uma tarefa da equipe.
Plataforma dedicada, em produção e validada em campo num resort de cerca de 450 unidades em Olímpia (SP), que une a jornada do hóspede e a operação da equipe num único sistema em tempo real. Dois aplicativos web que abrem por link ou QR, sem instalar nada: o do hóspede cobre pré-check-in com ficha digital e leitura de documentos, chave digital liberada após validação humana, traslado com GPS e radar de chegada, serviços no quarto, reservas, NPS, SOS e avisos por WhatsApp; o da equipe assume um perfil por função — portaria com leitura de placa no próprio aparelho, recepção, supervisão, central de alertas com SLA, manutenção, governança, segurança com chave-mestre auditada e gerência com painel de KPIs e relatório de plantão assistido por IA. Por baixo, um backend orientado a eventos com um serviço por domínio, visão computacional no edge para ocupação e mapa de calor sem reconhecimento facial, e clima com alerta antecipado de tempo severo.
Da ação do hóspede à tarefa da equipe
Contexto
A jornada do hóspede e a operação de um resort de grande porte vivem espalhadas em papel, planilhas, grupos de WhatsApp e sistemas que não conversam. A informação se perde no caminho, a equipe faz trabalho manual para compensar e o hóspede espera. Trocar o PMS não era opção: o risco de implantação seria maior que o problema.
Decisão
Um sistema em que cada ação do hóspede vira, na hora, uma fila, um radar ou um alerta para a equipe, e o retorno volta ao hóspede em segundos. Backend hexagonal orientado a eventos com um serviço por domínio — identidade, estadia, traslado, portaria, atendimento, reservas, ocupação, alertas, projeções e notificação —, um banco por serviço, idempotência e trilha de auditoria imutável; contratos versionados antes do código; PWAs offline-first no lugar de apps de loja; inferência de vídeo no edge, sem rosto e sem imagem armazenada, com placa expurgada em 24 horas; validação humana em toda ação crítica. Multi-tenant desde o primeiro dia, com dados e marca isolados por unidade.
Consequências
A plataforma roda ao lado do PMS, então a implantação é de baixo risco e a adoção é imediata — não há app para instalar nem sistema para migrar. O piloto está no ar e em uso real, dos dois aplicativos à portaria com leitura de placa, manutenção, segurança, governança, reservas, alertas, inteligência de vídeo e WhatsApp: operação, não protótipo. Em troca, cada cliente é uma instância dedicada que precisa de provisionamento, treinamento e evolução contínua — o compromisso é com quem usa, não com um lançamento.
PWA offline-first
Orientado a eventos
ALPR
Visão no edge
WhatsApp
LGPD
Multi-tenant
Ver o ambiente de demonstraçãoAmbiente com dados fictícios. Cliente citado por porte e cidade; marca visível apenas dentro do ambiente hospedado.
05Pilares de atuação
Quatro frentes que se sustentam mutuamente.
01
Arquitetura de solução em serviços financeiros
Desenho de solução ponta a ponta para núcleo bancário, pagamentos, crédito, cobrança e seguros: capacidades de negócio mapeadas em domínios, jornadas críticas modeladas, integração com o ecossistema regulado e blueprint C4 que sobrevive à auditoria e ao comitê.
BIAN
C4 Model
ADR
Event Storming
Modelagem de capacidades
02
Modernização de legado e microsserviços
Saída do monólito sem parar o negócio: strangler fig com fronteiras negociadas, anti-corruption layer sobre o núcleo antigo, decomposição por bounded context, contratos versionados e estratégia de dados para conviver com a fonte de verdade durante a transição.
DDD
Strangler Fig
ACL
Saga · Outbox
Contract-first
03
Plataforma em nuvem e resiliência
Fundação AWS pensada para carga transacional regulada: landing zone e segregação de contas, malha de rede e postura de segurança, resiliência multi-AZ com objetivo de recuperação declarado, observabilidade acionável e disciplina de custo tratada como requisito de arquitetura, não como relatório mensal.
Landing Zone
Well-Architected
EKS · ECS
IaC
FinOps
04
Dados e IA aplicada à engenharia
Data lake e arquitetura de streaming para domínios de alto volume, com linhagem, qualidade e governança tratadas desde o desenho — e a aplicação de agentes de IA onde ela realmente compõe: decomposição de domínio, geração de serviço sob padrão e verificação contínua de conformidade arquitetural.
Lakehouse
Streaming
Linhagem
Agentic engineering
Fitness functions
06Formatos de trabalho
Três formas de me contratar — todas terminam em decisão registrada.
2 a 4 semanas
Diagnóstico de arquitetura
Leitura do estado atual, mapa de domínios e acoplamentos, riscos estruturais ordenados por custo de permanência e um roadmap de modernização com sequência defensável. Entrego o que está de pé, o que vai quebrar e em que ordem mexer.
3 a 9 meses
Arquiteto de solução alocado
Atuação dentro do programa: desenho da solução, condução técnica dos times, negociação de fronteira entre squads e áreas, revisão de design, ADRs e a responsabilidade de manter a coerência do conjunto enquanto o escopo se move.
6 a 12 semanas
Plataforma de engenharia sob medida
Implantação da abordagem agêntica no seu contexto: padrão arquitetural codificado, geradores parametrizados para a sua stack, verificação de conformidade no pipeline e transferência de propriedade para o time interno — com a plataforma rodando, não em slides.
07Segmentos
Onde esse tipo de decisão custa caro.
Trabalhei majoritariamente em ambientes onde indisponibilidade tem nome, valor e prazo regulatório. Os projetos variam, o denominador comum não: volume transacional alto, integração com sistemas que ninguém pode desligar e um regulador do outro lado da mesa.
Núcleo bancárioPagamentos e liquidaçãoCrédito e originaçãoCobrança e recuperaçãoSeguros e previdênciaMeios de pagamento e adquirênciaOpen finance e integração reguladaAntifraude e riscoTelecom e utilities de alto volumePlataformas de dados corporativos
08Instrumental
A ferramenta é consequência da decisão, nunca o contrário.
Se a decisão é difícil, é exatamente aí que eu entro.
Descreva o contexto em três parágrafos — o sistema, a restrição e o prazo. Respondo com uma leitura inicial e o formato de trabalho que faz sentido, sem proposta genérica. E-mail ou WhatsApp — Brasil ou Chile, o que for mais direto para você.