ADR-004 — DDD + Vertical Slice
Contexte
L'application couvre plusieurs domaines métier distincts (planning, courses, garde-manger, recettes...). Sans structure claire, le code devient rapidement un plat de spaghettis.
Décision
DDD pragmatique + Vertical Slice. Chaque bounded context est autonome dans src/applications/[bc-name]/ avec ses couches domain/, application/, infrastructure/, ui/, api/.
Alternatives évaluées
Couches classiques (controllers / services / repositories globaux) — couplage fort, difficile à faire évoluer par domaine.
Feature folders sans DDD — manque de séparation logique métier / infrastructure.
Packages partagés en monorepo — testés, abandonnés : complexité sans valeur à ce stade (voir ADR-001).
Conséquences
Plus de boilerplate par domaine, mais chaque bounded context peut évoluer indépendamment.
Changer d'adapter (ex: remplacer Supabase par une autre BDD) ne touche que
infrastructure/.Les use cases dans
application/ne contiennent aucun import React ou Supabase — logique pure.Un bounded context ne peut pas importer directement depuis un autre — toujours passer par les interfaces.
Last updated