Skip to content

Commit 0d490de

Browse files
committed
📝 Add deployment recommendations for polymorphic event hierarchies
1 parent 54360cd commit 0d490de

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

‎transports/ibmmq/topology.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,18 @@ graph LR
6565
> [!NOTE]
6666
> For polymorphic subscriptions to work correctly, all concrete event types must be loadable in the subscribing endpoint's AppDomain. If a concrete type is defined in an assembly that is not referenced, the subscription for that type will not be created.
6767
68+
### Recommendations for message hierarchies
69+
70+
When using polymorphic events, distribute event types in dedicated, independently versioned packages. This allows subscribers to reference new concrete types and update their subscriptions before the publisher begins publishing those events.
71+
72+
Ensure that the deployment pipeline runs all subscriber subscription steps **before** starting the new version of the publisher. If a publisher starts publishing a new concrete event type before subscribers have created their subscriptions, those messages will be lost because no durable subscription exists to route them to a queue.
73+
74+
A typical deployment order:
75+
76+
1. Deploy the updated message contracts package containing the new event type.
77+
2. Deploy and start all subscribing endpoints so they create their durable subscriptions.
78+
3. Deploy and start the publishing endpoint.
79+
6880
## Topic naming
6981

7082
Topics are named using a configurable strategy. The default uses a prefix (default: `DEV`) and the fully qualified type name:

0 commit comments

Comments
 (0)