Pular para conteúdo

[ID] Título Curto da Decisão

Metadado Valor
Status ⚪ Proposto / ✅ Aceito / ⛔ Depreciado
Data DD-MM-AAAA
Decisores [Seu Nome], [Outros Envolvidos]
Contexto [Frontend / Backend / Infra / DevOps]

Resumo Executivo

Uma frase curta explicando a decisão para quem tem pressa. Ex: Adotamos MkDocs para reduzir a complexidade de manutenção da documentação.


1. Contexto e Problema

Descreva o cenário atual. O que está "doendo"? Por que precisamos tomar uma decisão agora? Use negrito para destacar os pontos de dor.

  • Dificuldade A: Descrição do problema.
  • Impacto: O que acontece se não resolvermos? (Ex: Débito técnico, lentidão, bugs).

2. Drivers da Decisão (Requisitos)

O que a solução precisa ter? (Checklist de critérios de aceitação)

  • Critério 1 (Ex: Deve ser Open Source)
  • Critério 2 (Ex: Compatível com Go 1.23)
  • Critério 3 (Ex: Baixo consumo de RAM)

3. Opções Consideradas

Compare as alternativas seja A, B, C, D etc depedendo de quantas tiveram e foram consideradas, abaixo deixei apenas uma comparação A vs B. Use Admonitions para visual "Prós e Contras".

Opção A: [Nome da Tecnologia/Padrão]

Descrição breve da opção.

Prós

  • Vantagem 1
  • Vantagem 2

Contras

  • Desvantagem 1
  • Desvantagem 2

Opção B: [Nome da Tecnologia/Padrão]

Prós

  • Vantagem 1

Contras

  • Desvantagem 1

4. Decisão

Escolhemos a Opção X.

Justificativa Técnica

Explique o "Porquê". Conecte a escolha com os Drivers da seção 2. Ex: A Opção X foi a única que atendeu ao requisito de performance sem aumentar a complexidade de build.

graph LR
    A[Problema] --> B{Decisão}
    B -->|Opção A| C[Resultado Ruim]
    B -->|Opção X| D[Resultado Bom]

5. Consequências (Trade-offs)

Toda decisão tem um preço. O que ganhamos e o que perdemos?

  • ✅ Positivo: O que melhora imediatamente?
  • ⚠ Negativo/Risco: O que piora ou precisa de mitigação?
  • ⌛ Neutro: O que muda, mas não é bom nem ruim?

6. Implementação (Opcional)

Como colocar isso em prática? (Snippets como o pymdownx.snippets para importar parte de um arquivo, comandos, configs).

Ver Detalhes de Configuração

Coloque códigos longos ou configurações aqui dentro para não poluir a leitura.

  config:
    enabled: true