Tirar os relatórios do banco transacional

Indicadores para clientes sofriam timeout porque consultas analíticas disputavam recursos com o tráfego da aplicação. Escrevi a decisão para separar as cargas, revisei a análise inicial para considerar a latência do warehouse e ajudei outro engenheiro a estabelecer a base do serviço. A implantação está em andamento; a latência final ainda não foi medida.

impactoA arquitetura separa leituras analíticas da carga transacional e está sendo implantada para tratar os timeouts. A base do serviço e as tabelas analíticas com isolamento por tenant estão prontas. Não há medição de latência antes e depois.
01

Contexto

Indicadores de inspeção voltados a clientes estavam sofrendo timeout. As consultas analíticas rodavam no mesmo banco transacional que atendia a aplicação.

02

Problema

Mover as consultas para um warehouse isolaria as cargas, mas esse banco tem uma latência mínima própria. Consultá-lo diretamente em uma tela síncrona poderia trocar um timeout por lentidão.

03

Decisão

Escrevi uma decisão que comparava quatro combinações entre serviço responsável e banco. Quando percebi que a primeira recomendação subestimava a latência do warehouse, revisei-a para exigir uma camada de serving. Também analisei custo, isolamento por tenant, segurança e privacidade; sete stakeholders revisaram a decisão.

04

Implementação

A base do serviço foi construída com outro engenheiro. Contribuí para o walking skeleton e a camada de dados; o time de plataforma manteve o pipeline de ingestão existente. As etapas de produto posteriores foram trabalho do time ampliado.

05

Resultado

A arquitetura separa as leituras analíticas do banco transacional e está sendo implantada para tratar os timeouts. A base do serviço e as tabelas analíticas isoladas por tenant estão prontas. Não foi registrada uma comparação de latência antes e depois.

06

Evidências

—A decisão comparou quatro alternativas e foi aprovada por sete pessoas de engenharia e plataforma.
—Os registros mostram trabalho compartilhado na base do serviço; não reivindico autoria exclusiva do repositório ou da implementação inicial.
—O modelo de dados e as rotinas de carga foram versionados como infraestrutura e passaram por staging antes de produção.