DDD Boundaries
Status: Federated from product architecture
Last updated: 2026-07-05
Authority documents
| Product | Document |
|---|---|
| PRD-001 (Dental Clinic ROS) | PRD-001 module boundaries — 534 lines, all platform + product modules |
| PRD-000 (Experience Platform) | PRD-000 module boundaries |
| Registry | Registry dependency graph |
Core rules (all products)
- No business logic in Controllers, Filament Resources, Form Requests, or Blade views
- Writes through Application Actions or Services only
- No cross-module Infrastructure imports — use contracts, events, Shared kernel
- DTO-first at module boundaries — never expose Eloquent models
- Clinic scoping — all clinic-owned data via
ClinicAwareInterface(PRD-001)
Layer model
Domain/ → Entities, ValueObjects, Events, Enums (no framework)
Application/ → Actions, Services, DTOs, Queries, Contracts
Infrastructure/ → Models, Repositories, External integrations
Http/ → Controllers, Requests (thin)
Providers/ → Module registrationContext map (PRD-001 summary)
| Bounded context | Communicates via |
|---|---|
| Leads → CRM | Events, public application services |
| AI → CRM/Leads | Tool handlers + contracts only |
| Marketing → Leads | Events |
| Compliance → all content modules | Review workflows, events |
| Saas → all tenant modules | EntitlementContract, tenancy middleware |
Full map: business-capability-map.md
Related
Breadcrumbs: Home → Architecture → DDD Boundaries