Daniel Chaves
Voltar para o blog

Node.js

Escalando Node.js e TypeScript para 99.99% de disponibilidade

09 de dezembro de 20252 min de leitura

Node.js é uma escolha sólida para sistemas financeiros de alta concorrência, desde que a arquitetura respeite as particularidades do seu modelo de execução.

Graceful shutdown não é opcional

Um deploy que mata o processo sem drenar requisições em andamento é uma fonte silenciosa de inconsistência — especialmente em fluxos que envolvem escrita no ledger. O processo deve parar de aceitar novas conexões, aguardar o término das operações em voo, e só então encerrar.

Circuit breakers em toda chamada externa

Toda dependência externa — SPI, provedores de KYC, bureaus de crédito — precisa de um circuit breaker com fallback explícito. A pergunta arquitetural correta não é "e se essa chamada falhar", mas "o que o sistema faz quando essa chamada falhar".

Filas para absorver picos

BullMQ (sobre Redis) é suficiente para a maioria dos casos de processamento assíncrono em plataformas financeiras: idempotência por job ID, retries com backoff exponencial, e dead-letter queues monitoradas continuamente.

Observabilidade desde a primeira linha

Tracing distribuído, métricas de latência por percentil (p50/p95/p99) e logs estruturados não são um "nice to have" adicionado depois do incidente — são o que torna possível diagnosticar um problema de produção em minutos, não horas.

Alta disponibilidade é resultado de dezenas de decisões pequenas e consistentes, não de uma única escolha de infraestrutura.