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