O que é este projeto
Este repositório reúne blueprints de arquitetura de sistemas que usamos como referência em projetos reais. Cada blueprint documenta uma decisão arquitetural com código Terraform, diagramas e explicações sobre trade-offs.
A ideia é simples: quando começamos um projeto novo, não partimos do zero. Partimos de um padrão testado, adaptamos ao contexto do cliente e entregamos mais rápido com menos risco.
Padrões de escalabilidade
Escalabilidade não é sobre preparar para milhões de usuários no dia 1. É sobre projetar de forma que o sistema cresça sem reescrever. Documentamos os padrões que mais aplicamos:
- Horizontal scaling com auto-scaling groups, configuração Terraform para AWS com políticas de CPU e custom metrics
- Database read replicas, separação de leitura e escrita com connection pooling via PgBouncer
- Cache distribuído, estratégias de cache-aside e write-through com Redis Cluster
- Queue-based load leveling · SQS/RabbitMQ para absorver picos sem derrubar o backend
- CDN e edge caching · CloudFront com origin shield para reduzir carga no origin
Exemplo: Auto-scaling com Terraform
Alta disponibilidade
Projetamos para que falhas aconteçam sem derrubar o serviço. Cada blueprint de HA documenta:
- Multi-AZ deployment, distribuição de instâncias em múltiplas zonas de disponibilidade
- Health checks e failover · Route53 com health checks que redirecionam tráfego em menos de 60 segundos
- Database failover · RDS Multi-AZ com failover automático e zero downtime
- Circuit breaker pattern, proteção contra falhas em cascata entre microsserviços
Arquitetura Multi-AZ com failover automático
Microsserviços
Nem todo sistema precisa de microsserviços. Documentamos quando faz sentido decompor e quando um monolito bem estruturado é a melhor escolha. Quando decompomos, seguimos estes princípios:
- Domain-Driven Design, bounded contexts definem os limites de cada serviço
- API Gateway · Kong ou AWS API Gateway como ponto único de entrada
- Service discovery · Consul ou AWS Cloud Map para que serviços se encontrem
- Event-driven communication · SNS/SQS ou Kafka para comunicação assíncrona entre serviços
- Distributed tracing · OpenTelemetry com Jaeger para rastrear requests entre serviços
Observabilidade
Monitoramento não é dashboard bonito. É saber que algo quebrou antes do cliente perceber. Cada blueprint inclui configuração completa de:
- Métricas · Prometheus com alertas configurados para latência P99, error rate e saturação
- Logs · ELK Stack ou CloudWatch Logs com queries estruturadas e retenção definida
- Traces · OpenTelemetry instrumentando cada request do ingress ao banco de dados
- Dashboards · Grafana com painéis RED (Rate, Errors, Duration) por serviço
- Alerting · PagerDuty/OpsGenie com escalation policies e runbooks linkados
Como usar
Clone o repositório, escolha o blueprint que mais se aproxima do seu cenário e adapte. Cada pasta contém:
README.md, contexto, decisões e trade-offsmain.tf, infraestrutura como código (Terraform)variables.tf, parâmetros configuráveisdiagram.svg, diagrama visual da arquiteturaadr/· Architecture Decision Records