代码之家  ›  专栏  ›  技术社区  ›  iam.Carrot

与Rollbak有关的域事件

  •  0
  • iam.Carrot  · 技术社区  · 5 年前

    使用 Domain Driven Design Mongodb 以及外部服务。假设我们有两种服务 Service A (for aggregate A) Service B for aggregate B . 每当 Aggregate A 创建了相应的 Aggregate B 也会创建。一切都结束了 synchronously via an API call 以确保实时操作。以防 骨料B 骨料A 需要回滚。

    域事件 Aggregate_A_Created 骨料A 存储在DB中(通过ORM处理)。在 骨料B 已创建。

    骨料A 已创建,则会触发事件,但如果 创建失败 骨料A 已创建聚合 骨料A 存在,但实际上它失败了。

    Aggregate_A_deleted 但是如果服务收到 Deleted 事件之前 Created 事件?

    我被困在这里,一些见解将是伟大的。我能否将Spring实现更改为仅在两个操作都成功时触发域事件?我听说springmongodb不支持事务调用

    0 回复  |  直到 5 年前
        1
  •  0
  •   mtj    5 年前

    如果聚合A和聚合B不能分离,它们是否应该是公共聚合根的一部分?

    如果它们真的是分开的,B应该监听A的创建,并且只有在B的创建成功时才确认该事件。这样-只要你有 持久性事件-即使系统在a被创建并恢复到该状态后关闭,也会创建B。