我想在我的项目中使用 DDD\CQRS\ES。我刚开始使用它,所以我没有很多经验。我知道现有的核心域、支持域和 CRUD 域。我的核心域引用了 CRUD 数据。比如Order里面有很多业务规则,但是里面包含了Delivery Company,receipt point等基本信息。
这些信息由管理员管理。在我看来,我应该使用 crud 方法,但是当我需要回滚事件时会发生什么?
系统将存储混合数据——从事件源恢复和从应用程序的 crud 部分实际恢复。我最终会得到不一致的数据。例如,订单可能由不存在的公司维护(该公司在交付包裹时被管理员删除,但回滚后订单仍然有效)在每个项目中都是 CRUD 数据的一部分,那么您如何处理这个问题?我应该存储公司活动吗?
此外,当我添加新订单时,我应该通过事件发送公司名称和 ID,因为当我重建我的 ReadStore 时,数据库中可能没有公司,所以我无法从存储库中获取 companyName
PS。你知道任何 CRUD 框架来处理简单的 CRUD 操作吗?
PS.2 你知道在 ES\CQRS 方法中包含应用程序的 CRUD 部分的任何示例开源项目吗?
好的。也许我描述得太复杂了。我只是想知道:
当我将核心域存储在事件存储中并且我希望能够恢复核心域的先前状态时,如何实现应用程序的最简单部分(糟糕的业务逻辑 - 主要是 CRUD 操作)
我是否也应该在事件存储中存储 crud 操作?
回滚事件存储后如何提供一致的数据?
您为 Java 应用程序推荐哪种 CRUD 框架?