1 ADRs - Decisoes Técnicas
Rafael Alves Lopes edited this page 2026-05-27 15:15:46 -03:00

ADRs - Decisoes Tecnicas

Este arquivo registra decisoes importantes. Formato simplificado: contexto, decisao, consequencias.

ADR 001 - Usar WhatsApp Web para MVP

Contexto

O produto precisava demonstrar atendimento WhatsApp rapidamente, com envio/recebimento real.

Decisao

Usar whatsapp-web.js no backend.

Consequencias

Positivas:

  • entrega rapida;
  • QR Code simples;
  • conversa real no WhatsApp.

Negativas:

  • dependencia de sessao WhatsApp Web;
  • Puppeteer/Chromium no servidor;
  • risco operacional maior que API oficial;
  • nao e ideal para producao robusta.

ADR 002 - React/Vite com estilos inline

Contexto

Velocidade de prototipacao e demo.

Decisao

Usar React + Vite e estilos inline com variaveis globais.

Consequencias

Positivas:

  • desenvolvimento rapido;
  • componentes autocontidos.

Negativas:

  • arquivos grandes;
  • dificil reaproveitamento visual;
  • refatoracao futura recomendada.

ADR 003 - PostgreSQL como fonte operacional

Contexto

Era necessario controlar usuarios, filas, templates, contatos e auditoria.

Decisao

Usar PostgreSQL com SQL direto via pg.

Consequencias

Positivas:

  • controle claro do schema;
  • queries explicitas;
  • pouca dependencia de ORM.

Negativas:

  • precisa disciplina de migrations;
  • risco de SQL duplicado/espalhado.

ADR 004 - JWT proprio da aplicacao

Contexto

LDAP e Microsoft autenticam identidades, mas o sistema precisa de perfis e areas proprios.

Decisao

Emitir JWT proprio apos autenticar no provedor externo.

Consequencias

Positivas:

  • token unico para frontend;
  • inclui perfis e areas do sistema.

Negativas:

  • ainda falta guard backend;
  • precisa revisar armazenamento do token para producao.

ADR 005 - Migrations SQL versionadas

Contexto

Schema evoluiu rapido durante MVP.

Decisao

Versionar migrations SQL em database/migrations.

Consequencias

Positivas:

  • historico legivel;
  • facil revisar mudancas.

Negativas:

  • ainda falta runner formal;
  • compose nao aplica automaticamente a pasta atual.