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:
| Plataforma | Justificativa |
|---|---|
| Vercel | Mantenedora do Next.js; oferece CDN global e implantação com configuração zero via GitHub |
| Railway | Facilidade para rodar ambientes Node.js com painel de logs integrado, sem necessidade de Dockerfiles complexos na fase inicial |
| Neon DB | Natureza serverless (não consome recursos em inatividade); recurso de Branching permite cópias instantâneas do banco para testes seguros |
As alternativas avaliadas foram:
| Camada | Opção Descartada | Motivo |
|---|---|---|
| Hospedagem | AWS / DigitalOcean VPS | Alto esforço de configuração (SysAdmin) e custos incompatíveis com orçamento zero do MVP |
| Banco de Dados | Supabase | Limitações de suporte a IPv4 para conexões diretas |
| Banco de Dados | Railway DB | Exige 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: