Skip to content

Development

Adding a command

  1. Add an input + *Validator in .DomainModel / .DomainModel.Impl.
  2. Add the method to IEntitlementsProcessor / DefaultEntitlementsProcessor; mutate the Entitlement aggregate (assignments/overrides are owned children) and publish the matching entitlements.v1.* event.
  3. Expose over both adapters (IEntitlementManagementService -> REST + Grpc*).
  4. 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.

See also