Architecture Decision Records
Architectuurbeslissingen en de motivatie erachter
Architecture Decision Records (ADRs)
ADRs documenteren significante architectuurbeslissingen, de context en de gevolgen.
ADR-005: Modular Monolith
Status: Accepted | Datum: 2026-02-26
Beslissing
Twee primaire applicaties met interne module-grenzen:
- Next.js (App Router) — frontend + SSR, dashboard, portal
- Fastify API — REST API voor agent-facing endpoints
Waarom niet Microservices?
- Team < 10 personen: operationele overhead niet gerechtvaardigd
- Geen service mesh, geen service discovery, geen inter-service versioning nodig
- Eenvoudigere lokale development setup
- Snellere iteratie
Trade-offs
| ✅ Voordelen | ⚠️ Nadelen |
|---|---|
| Geen distributed complexity | Horizontaal schalen van volledige app |
| Gedeelde transacties (één DB) | Risico op slijten module-grenzen |
| Lager deployment risico | — |
| Makkelijker refactoren | — |
ADR-006: Nx Monorepo met pnpm
Status: Accepted | Datum: 2026-02-26
Beslissing
Nx workspace met pnpm als package manager voor code sharing tussen apps.
Rationale
- Computation caching: ongewijzigde packages worden niet opnieuw gebuild
- pnpm: efficiënter disk gebruik via hard links versus npm/yarn
nx affected:*commands: beperkt CI tijd significant- Één codebase voor alle apps maakt refactoring eenvoudig
ADR-007 t/m ADR-012
Zie de volledige ADR index in de repository: docs/decisions/INDEX.md
ADRs dekken onder andere:
- Database keuze (Supabase)
- Authenticatie strategie (Clerk)
- Deployment infrastructuur (Hetzner + Caddy)
- Testing strategie (Vitest + Playwright)