User Account aggregates
Context
This record follows the existing planning concept grain rather than reopening the superseded concepts. The implementation has multiple aggregates, which the design represents without adding object kinds or reusing numbers.
The remaining grain question belongs to Product; it does not change this examination’s object count.
Decision
Keep membership, access definitions, assignments and staff grants as separate aggregates within the planning User Account concept, with principals and history adjacent.
Alternatives Considered
Create separate objects for the superseded role and grant concepts. The planning layer already groups those facets under User Account; separate objects would contradict that concept allocation.
Give all security records one aggregate lifecycle. Independent definition, assignment, membership and grant transactions require distinct state models.
Consequences
The grouped object retains separate state models and invariant sets for its aggregates.
Any future concept split requires a planning decision and permanent new concept allocation before design changes.