Copied
ADR-003 · apps/client · Ratified

ADR-003: Vertical Domain Slicing Over Horizontal Technical Layers

Organize domain logic into 24 isolated vertical slices communicating only via public service contracts or NATS events.

← All ADRs · Gate: ESLint & AST import boundary checks

Context

A 114-model schema shared across properties, projects, verifications, escrow, and stores risks turning into a tightly coupled ball of mud.

Decision

Partition business logic into 24 vertical slices (properties, projects, verifications, escrow, licenses, gdpr, etc.). Slices may never import another slice’s repository.ts.

Consequences

Each slice can evolve or be extracted into a standalone microservice (as we did with apps/verification-ops) without untangling cross-slice queries.