Development¶
Adding a command¶
- Add an input +
*Validatorin.DomainModel/.DomainModel.Impl. - Add the method to
IEntitlementsProcessor/DefaultEntitlementsProcessor; mutate theEntitlementaggregate (assignments/overrides are owned children) and publish the matchingentitlements.v1.*event. - Expose over both adapters (
IEntitlementManagementService-> REST +Grpc*). - Add unit + acceptance tests.
Closing the suspend/decommission gap¶
The status enum supports Suspended/Decommissioned with transition rules, but no public commands exist yet (docs/backlog/). To add them, follow the command recipe above and extend the architecture/parity tests.
Reacting to more catalog events¶
ProductCreatedEvent/ProductUpdatedEvent are topology-mapped but unhandled. To handle them, add behavior to ProductCatalogReactionStateMachine (or a new saga) calling a new reaction hook. Keep handlers idempotent (resiliency).
Cross-context contract¶
The catalog event contracts come from the NuGet ConnectSoft.Saas.ProductsCatalog.MessagingModel; keep the pinned version aligned with the catalog service's published language. CrossRepoPublishedLanguageTests guards this.