Pular para o conteúdo principal

ADR-002: Infraestrutura de Hospedagem e Banco de Dados

Título

Definição da infraestrutura de hospedagem e banco de dados para o MVP do projeto Cruzeiro e Remo em Números (Vercel, Railway e Neon).

Status

Aceito

Data

2026-02-20


Contexto

O projeto exige a hospedagem de uma arquitetura Multi-tenant composta por duas interfaces web independentes (Frontend), uma API centralizada (Backend) e um banco de dados relacional. Para a fase de MVP, é mandatório minimizar custos operacionais, garantindo alta disponibilidade, facilidade de implantação (CI/CD) e suporte adequado às tecnologias definidas na ADR-001 (Next.js e NestJS).


Decisão

A equipe definiu o uso de uma stack de hospedagem descentralizada:

  • Vercel: para os dois Frontends (Remo e Cruzeiro).
  • Railway: para o Backend (NestJS).
  • Neon (PostgreSQL serverless): para o Banco de Dados.

Justificativas por plataforma:

PlataformaJustificativa
VercelMantenedora do Next.js; oferece CDN global e implantação com configuração zero via GitHub
RailwayFacilidade para rodar ambientes Node.js com painel de logs integrado, sem necessidade de Dockerfiles complexos na fase inicial
Neon DBNatureza serverless (não consome recursos em inatividade); recurso de Branching permite cópias instantâneas do banco para testes seguros

As alternativas avaliadas foram:

CamadaOpção DescartadaMotivo
HospedagemAWS / DigitalOcean VPSAlto esforço de configuração (SysAdmin) e custos incompatíveis com orçamento zero do MVP
Banco de DadosSupabaseLimitações de suporte a IPv4 para conexões diretas
Banco de DadosRailway DBExige contêiner rodando 24/7, consumindo créditos continuamente

Consequências

Positivas:

  • Custo zero até o MVP: Todos os provedores escolhidos possuem free tiers generosos adequados ao volume inicial do projeto.
  • Deploy automático: Integração nativa com GitHub em todos os níveis (Frontend, Backend e migrações de banco).
  • Adequação tecnológica: Alinhamento direto com as tecnologias da ADR-001.
  • Neon Branching: Permite testar migrações em cópias isoladas do banco sem risco ao ambiente de produção.

Negativas:

  • Vendor lock-in: Arquitetura descentralizada introduz dependência com Vercel e Railway.
  • Cold start do Neon: A natureza serverless pode causar um leve atraso na primeira requisição após um período de inatividade.

Conformidade

  • Nenhum serviço de infraestrutura pago deve ser contratado antes da validação do MVP.
  • Variáveis de ambiente sensíveis (ex: DATABASE_URL) devem ser configuradas exclusivamente nos painéis das plataformas, nunca versionadas no repositório.
  • O deploy deve ser acionado automaticamente via push para a branch principal de cada repositório.

Observações

  • Autor: João Pedro Santos de Brito
  • Versão: 1.0
  • Changelog:
    • 1.0 - 20/02/2026: versão inicial (João Pedro S. de Brito)

Referências: