SaaSOvation’s current Core Domain (2) is the Agile Project Management Context, so it makes sense to see how its Modules are designed.
The ProjectOvation team chose three top-level Modules:
product. Here’s the first:
com.saasovation.agilepm.domain.model.tenant <<value object>> TenantId
Its contents are a simple Value Object,
TenantId, that holds the unique identity of a specific tenant, which originates in the Identity and Access Context. In the case of this Module, just about all others in the model will depend on it. It’s essential for segregating one tenant’s objects from another’s. Yet, the dependency is acyclic. The
tenant Module does not ...