Data / External Systems
A camada onde vivem os bancos de dados, caches, sistemas legados e provedores externos que sustentam ou complementam a operação do sistema.
O que esta camada inclui
- Bancos de dados relacionais
- Bancos NoSQL
- Cache como Redis
- Sistemas legados
- APIs de terceiros
- Serviços externos de pagamentos, e-mail ou ERP
Banco de dados por serviço
Em arquiteturas com microsserviços, o recomendável é que cada serviço controle sua persistência.
Isso não significa necessariamente um banco de dados físico distinto em todos os casos, mas sim limites claros de ownership e acesso.
Relacional vs documental
Relacional
Útil quando você precisa de integridade, joins, consistência forte e estruturas transacionais claras.
Documental
Útil quando o modelo é mais flexível ou quando a forma de consulta favorece documentos agregados.
A escolha deve responder ao domínio, não apenas a modismos tecnológicos.
Redis e cache
O Redis pode ser usado para:
- caching de respostas
- sessões
- throttling
- filas simples em certos contextos
O cache não é a fonte da verdade; é uma otimização.
Sistemas externos
Nem tudo está sob o nosso controle.
É preciso conviver com:
- ERP
- gateways de pagamento
- serviços de e-mail
- provedores logísticos
- plataformas legadas
Por isso a arquitetura precisa contemplar adaptadores, tolerância a falhas e tradução de modelos.
Resumo
Esta camada reúne persistência e sistemas externos. É fundamental entender que aqui vivem dependências críticas, mas não a lógica principal do domínio.