Domain-driven design requires that each aggregate be owned by a single bounded context. Only the owning context may modify it, enforce its invariants, or expose its behavior. However, aggregates rarely exist in isolation. Consider a course management system divided into separate bounded contexts:
- Course context owns Course and Enrollment.
- Student context owns Student.
Enrollment must reference a Student.