两个基于事件的限界上下文,如何加载初始数据?

Two event based bounded contexts, how to load initial data?

在通过消息传递集成两个限界上下文时,我将如何加载初始数据(假设来自 UI)?

示例:

  1. 限界上下文 #1 - 机场
  2. 限界上下文 #2 - 用户代理 (UI) - 负责 displaying/updating 机场的飞机。

当 UI 刚开始时,我想查询 "Airport" 所有飞机。 我该怎么做?

我目前的想法是模拟一个方法调用:

  1. UI 上下文 - Post "GetAirplanes" 消息到 "UI Queue"
  2. Airport Context - 订阅 "UI Queue",看到 "GetAirplanes" 消息
  3. Airport 上下文 - Post "AllAirplanes" "Airport Queue"
  4. 上的消息
  5. UI 上下文 - 订阅 "Airport" 队列
  6. UI 上下文 - 接收消息 "AllAirplanes" 并更新 HTML table.

一个好的方法是从事件中建立一个读取模型ui。读取模型只是一个简单的 dto,它被 ui 发送到您的 ui。这就是您要查询的内容。它应该超级简单并且针对 ui 进行了优化。

通常您根本不会查询您的域。它负责处理命令和引发表示状态更改的事件消息。

您订阅这些事件以确保您的读取模型是最新的并准备好为您的 ui 提供服务。

我有一个 post 可能对您有帮助,我在其中进行了更详细的介绍。

Over view of cqrs and event sourcing