1

在我第一次涉足系统集成时,我确定了以下限界上下文:

  1. 发票
  2. 订阅
  3. 收藏品

特别是对于集合有界上下文“暂停过期帐户”功能,我们将:

  1. 从 Invoicing 获取过期发票列表
  2. 向用户发送暂停通知(内部电子邮件服务)
  3. 将请求暂停发送到订阅有界上下文

我了解如何使用阻塞 Web 服务来集成有界上下文,但我可以看到这会在远程服务关闭时带来问题。

我知道消息总线,但不确定我们将如何与消息策略集成:

每个上下文是否包含外部有界上下文的本地读取模型(在外部有界上下文添加/删除实体并通过唯一 ID 关联时监听来自外部有界上下文的事件)?

如果使用消息,我们是否真的从感兴趣的远程上下文构建实体的本地副本(具有用于本地上下文的字段)?还是我错过了其他东西?

4

1 回答 1

1

在您的场景中,您可以采用事件驱动架构并避免在本地存储数据。为了暂停过期帐户,您可以让 Invoicing BC 发布一个事件,指示发票过期。Collections and Subscriptions BC 将订阅该事件并调用所需的行为。从 Invoicing BC 的角度来看,您将有一个名为 InvoiceBecamePastDue 之类的域事件,它将通过消息总线在外部发布。

在这种情况下,您似乎不需要本地副本。但是,在某些情况下,需要数据的本地副本,在这种情况下,您将使用已发布的事件来维护本地副本。

于 2013-04-17T15:31:12.810 回答