Pular para conteúdo

ADR 0004: Escolha do Banco de Dados Relacional (PostgreSQL)

Status

Aceito

Contexto

O EdTech precisa manter relações estritas entre as entidades: Orientadores coordenam Projetos, que têm Pesquisadores (Membros), que por sua vez submetem Documentos. O acesso aos documentos é inteiramente guiado por essa árvore de hierarquia, garantindo o "Isolamento Visual" solicitado nos requisitos. Além disso, o sistema conta com um módulo de Auditoria que exige um histórico imutável (append-only) de eventos complexos. Precisamos de consistência forte (ACID) para impedir que documentos fiquem orfãos ou que logs de auditoria se percam. Bancos NoSQL poderiam oferecer maior velocidade de inserção, mas à custa da integridade referencial que o projeto demanda.

Decisão

Optamos por usar PostgreSQL, hospedado no Google Cloud SQL.

Consequências

Positivas

  • Integridade Relacional (ACID): Permite usar Foreign Keys para assegurar, no nível do banco de dados, que nenhum documento exista sem um autor válido e que pesquisadores só pertençam a projetos existentes.

  • Consultas Complexas: O módulo de auditoria demandará pesquisas como "todos os logs de acesso negado a documentos do projeto X no mês Y". O SQL lida com isso de maneira madura.

  • Ecossistema: Ferramentas como o Flyway (para versionamento de esquema) e o Spring Data JPA funcionam de forma nativa e extremamente consolidada com PostgreSQL.

Negativas / Riscos

  • Gerenciamento de Esquema: Alterações na estrutura de dados (DDL) exigem migrações explícitas, diminuindo ligeiramente a agilidade em relação a um banco de dados orientado a documentos.

  • Custo Fixo: Diferente do Cloud Run (Serverless computacional), o Cloud SQL possui um custo base contínuo por instância, mesmo ocioso. Para atenuar, será escolhida a menor instância possível para o ambiente de desenvolvimento/homologação.


Histórico de Versões

Versão Data Descrição Autor
1.0 04/06/2026 Criação do documento Pedro Henrique P. Santos
1.1 13/06/2026 Revisão técnica e reestruturação da documentação Pedro Henrique P. Santos
1.2 04/07/2026 Revisão profunda, correção de metadados e melhorias visuais Pedro Henrique P. Santos

Comentários