我目前正在为Java-Web堆栈(Spring,Hibernate,HTML5 ..)工作的项目正在使用Domain-Driven-Design原则进行设计和开发。
我们的团队被要求实施会计系统,该系统将通过创建和存储会计分录来响应业务事件(例如请求向客户付款或接收付款)。似乎Martin Fowler的accounting patterns提倡使用基于事件的系统。所以我的问题如下:
非常感谢你的帮助。
答案 0 :(得分:2)
会计通常是DDD用语中的下游有界上下文。这意味着会计操作是为响应来自其他系统的事件而创建的。正如您所指出的,Martin Fowler的会计模式也反映了这一点。
Udi所描述的域事件基础架构是否正确的方法取决于您当前的系统是什么样的。 Udi描述的是直接从域实体发布域事件的框架。如果这是你的首选方法,那就去吧。您应该考虑的是1)所描述的框架并不简单 - 您必须处理线程问题以及事务,2)它解决了在单个进程中发布事件的问题以及您是否需要发布到其他系统你需要实施一个调度员。
重要的一点是领域事件本身的概念 - 表明域中发生了“有趣”的事情。事件驱动的建模方法是范式从其他方法的转变。它们的发表方式不太重要。