Design patterns BizTalk:按给定顺序处理不相关的消息

Design patterns BizTalk:按给定顺序处理不相关的消息,design-patterns,process,biztalk,Design Patterns,Process,Biztalk,我正在接收来自外部系统的消息。 有三种消息类型,每种类型代表一种实体类型,每条消息将包含一个动词(创建、更新、删除) 如下所示 实体A(CUD) 实体B(CUD) 实体C(U) 实体B与实体a有关系,这意味着必须先创建实体a,然后才能创建/更新实体B。 实体C与实体B有关系,这意味着必须先创建实体B,然后才能更新实体C 这些消息将用于更新另外两个外部系统。 消息可能无序接收,这意味着实体B可能在实体A之前接收 我正在努力寻找一种好的模式,以确保消息实体以正确的顺序进行处理。 如果可能的话,我宁愿

我正在接收来自外部系统的消息。
有三种消息类型,每种类型代表一种实体类型,每条消息将包含一个动词(创建、更新、删除)
如下所示

实体A(CUD)
实体B(CUD)
实体C(U)

实体B与实体a有关系,这意味着必须先创建实体a,然后才能创建/更新实体B。
实体C与实体B有关系,这意味着必须先创建实体B,然后才能更新实体C

这些消息将用于更新另外两个外部系统。
消息可能无序接收,这意味着实体B可能在实体A之前接收

我正在努力寻找一种好的模式,以确保消息实体以正确的顺序进行处理。
如果可能的话,我宁愿不使用数据库或文件系统。

任何关于如何解决这个问题的建议都是非常受欢迎的。

首先,返回源系统。如果信息有真正的顺序,那么他们真的需要支持。如果他们不能或拒绝,那么您需要通知您的管理层,您必须花费额外的时间来适应他们对业务需求缺乏遵从性的情况

话虽如此,只要有一种确定的方法来关联传入消息、AccountID或类似的信息,您就可以使用并行护航来实现这一点

即使B或C激活车队编排,它也将等待A继续处理。然后,您可以按照您想要的任何顺序处理消息

需要记住的一点是,您应该将每个接收形状放置在一个有超时的作用域中,否则,如果a或B/C“丢失”,编排将永远等待。如果超时触发,您可以发送警报

以下是一个平行车队的示例:


通过Bing或Google,你还可以找到许多其他网站。

首先,返回源系统。如果信息有真正的顺序,那么他们真的需要支持。如果他们不能或拒绝,那么您需要通知您的管理层,您必须花费额外的时间来适应他们对业务需求缺乏遵从性的情况

话虽如此,只要有一种确定的方法来关联传入消息、AccountID或类似的信息,您就可以使用并行护航来实现这一点

即使B或C激活车队编排,它也将等待A继续处理。然后,您可以按照您想要的任何顺序处理消息

需要记住的一点是,您应该将每个接收形状放置在一个有超时的作用域中,否则,如果a或B/C“丢失”,编排将永远等待。如果超时触发,您可以发送警报

以下是一个平行车队的示例:

你可以通过Bing或Google找到很多其他的网站