AD, ADR e ADL | Documentação em engenharia de Software | Arquitetura
- AD, ADR e ADL | Documentação em engenharia de Software | Arquitetura
✅ 1. AD – Architecture Decision
A decisão arquitetural em si, simples e direta. Pode estar anotada ou só discutida verbalmente.
📄 Exemplo:
"Decidimos utilizar RabbitMQ como broker de mensagens entre os microsserviços devido à sua robustez, suporte a filas duráveis e compatibilidade com .NET."
📘 2. ADR – Architecture Decision Record
Um documento estruturado que registra essa decisão com todos os detalhes, incluindo contexto, justificativa, alternativas, etc.
info
Manteremos uma coleção de registros "arquitetonicamente significativos" decisões: aquelas que afetam a estrutura, não funcionais características, dependências, interfaces ou técnicas de construção.
- Documentação: 🔗 Clique aqui
📄 Exemplo – adr-002-rabbitmq.md
# ADR 002: Adoção do RabbitMQ como Broker de Mensagens
**Data:** 2025-04-04
**Status:** Aceito
**Responsável:** João Silva
## Contexto
Estamos desenvolvendo uma arquitetura baseada em microsserviços que precisa de comunicação assíncrona entre os serviços.
## Decisão
Adotamos o RabbitMQ como solução de mensageria.
## Justificativa
- É maduro e amplamente utilizado.
- Suporta filas duráveis e mensagens persistentes.
- Tem ótima integração com a stack .NET.
- Equipe já tem experiência com a ferramenta.
## Alternativas Consideradas
- **Apache Kafka**: Poderoso para eventos de alto volume, mas mais complexo de configurar e operar.
- **Azure Service Bus**: Boa opção, mas preferimos evitar lock-in com serviços específicos da nuvem.
## Consequências
- Precisaremos de um ambiente dedicado para o RabbitMQ (Docker ou serviço gerenciado).
- Monitoramento e retry das filas serão necessários.
- A equipe deve manter boas práticas de consumo e publicação.
## Referências
- https://www.rabbitmq.com/
- https://docs.microsoft.com/en-us/dotnet/architecture/microservices/messaging-communication/
🧾 3. ADL – Architecture Decision Log
Um log/tabela com todos os ADRs existentes no projeto. Geralmente é o
README.mdda pasta de ADRs ou um documento geral.
📄 Exemplo – architecture-decision-log.md
# Architecture Decision Log (ADL)
| Nº | Título | Data | Responsável | Status |
|-----|----------------------------------------|------------|------------------|---------|
| 001 | Banco de dados: PostgreSQL | 2025-03-01 | Douglas Silva | Aceito |
| 002 | Broker de mensagens: RabbitMQ | 2025-04-04 | João Silva | Aceito |
| 003 | Autenticação via IdentityServer | 2025-04-10 | Carla Almeida | Em análise |
🔁 Relação entre eles
- AD → A ideia/decisão: “Vamos usar PostgreSQL.”
- ADR → O documento que explica essa decisão:
adr-001-postgresql.md - ADL → O índice que organiza todos os ADRs para rastreabilidade.