我目前正在工作的项目基于 Java-Web 堆栈(Spring、Hibernate、HTML5..),正在使用 Domain-Driven-Design 的方法。设计和开发的原则。
我们的团队被要求实现一个会计系统,该系统将通过创建和存储会计条目来响应业务事件(例如请求向客户付款或接收付款)。看来accounting patterns Martin Fowler 提倡使用基于事件的系统。所以我的问题如下:
- 是 domain events用于此目的的正确方法是什么?
- 如果是,与在我们的项目中实现新的事件机制相比,有哪些好处?
非常感谢您的帮助。
最佳答案
会计通常是 DDD 术语中的下游有界上下文。这意味着会计操作是为了响应来自其他系统的事件而创建的。正如您所指出的,马丁·福勒的会计模式也反射(reflect)了这一点。
Udi 描述的领域事件基础设施是否是正确的方法取决于您当前的系统是什么样的。 Udi 描述的是一个直接从领域实体发布领域事件的框架。如果这是您的首选方法,那么就采用它。您应该考虑的是 1) 所描述的框架并不是微不足道的 - 您必须处理线程问题和事务,2) 它解决了单个进程中的发布事件以及您是否需要发布到其他系统的问题您将需要实现一个调度程序。
重要的是领域事件本身的概念——表明领域中发生了一些“有趣”的事情。事件驱动建模方法是对其他方法的范式转变。它们如何发布并不那么重要。
关于java - 我是否应该设计一个包含领域事件的会计系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17681588/