ADR-003 — Production Stack (Out-of-Scope MVP)
ADR-003 — Production Stack (Out-of-Scope MVP)
Sección titulada «ADR-003 — Production Stack (Out-of-Scope MVP)»Accepted
Context
Sección titulada «Context»The MVP does not deploy to production, but the code must be compatible with the target AWS topology from the start. Development decisions that ignore production constraints generate costly rework.
Decision
Sección titulada «Decision»The production topology is:
| Service | Provider | Role |
|---|---|---|
| Frontend hosting | AWS Amplify | Build + CDN + SPA routing |
| Backend compute | AWS App Runner | Django container (auto-scaling) |
| Database | AWS RDS PostgreSQL 16 | Managed DB |
| Object storage | AWS S3 | Media, static fallback |
| Auth | SimpleJWT (dev) / AWS Cognito (staging + prod) | See [[adr-008-authentication |
Specific sub-decisions in [[adr-003-a-backend-prod-stack|ADR-003-a]] (backend) and [[adr-003-b-frontend-prod-stack|ADR-003-b]] (frontend).
Sub-decisions
Sección titulada «Sub-decisions»- [[adr-003-a-backend-prod-stack|ADR-003-a]] — Backend Production Stack. Documents the App Runner + RDS + Cognito + WhiteNoise topology and the constraints the MVP Docker image must respect from day one.
- [[adr-003-b-frontend-prod-stack|ADR-003-b]] — Frontend Production Stack. Documents the Amplify hosting, SPA rewrite rule, build command, and Cognito auth integration for the Angular CSR app.
Consequences
Sección titulada «Consequences»- The backend Dockerfile must produce a valid image for App Runner from the MVP onward.
- Sensitive environment variables never go in the repository — AWS Secrets Manager / Amplify Environment Variables in prod.
- The SimpleJWT to Cognito switch requires no changes in Angular; the auth interceptor is provider-agnostic ([[adr-008-authentication|ADR-008]]).