Correlation Issue Buyer places order with POId as BSChannelType Identifier Seller places order with Distributor to distribute goods to Buyer using InvoiceId as SDChannelType Identifier Distributor sends delivery details to Buyer on DBChannelType with Identifier as DeliveryId Problem: How can the Buyer determine that the message from the Distributor is for a specific Purchase Order?
Correlation Issue Supposing the Buyer buys a Car and Washing machine more-or-less at the same time but as two separate business transactions. For example buyer acting on behalf of two different customers. Thus two different choreos. The messages from the Distributor with Identifiers on the channel instances are Delivery1 and Delivery2. The Buyer has no way of knowing which delivery belongs to which conversation.
Correlation Issue OUTIN BSChannelType:PO1 BSChannelType:PO2 DSChannelType:DEL2 DSChannelType:DEL1 From the Buyers perspective we see the following interactions based on their channel identities. Because the identifiers have no relationship we cannot figure out which interaction belongs with which
Correlation Issue Solution #1 –Require all roles to adopt the same Id for Channel Instances –+ves Works and is simple –-ves Big restriction that may not work in practice Solution #2 –Provide some sort of session encoding to channels with identifier evolution –+ves Works Few restrictions –-ves More complex (Channel Identity needs to be preserved) Onus on designer