我是DDD的新手,正在阅读文章以获取更多信息。其中一篇文章专注于域事件(DE)。例如,在执行某些代码后,发送电子邮件就是引发的一个域事件,因为满足一些条件。
代码示例展示了一种处理域事件的方式,后面跟着这段话:
请注意,上面的代码将在与常规域工作相同的事务中的同一线程上运行,因此您应避免执行任何阻塞活动,例如使用SMTP或Web服务。而是,应优先使用单向消息传递来与执行这些阻塞活动的其他组件通信。
我的问题是:
1.处理DE时,这是一般性的问题吗?还是只是提到的解决方案的问题?
2.如果在交易中引发域事件且系统不会同步处理它们,应如何处理它们?
3.当我决定序列化这些事件并让调度程序(或任何其他机制)执行它们时,当交易被回滚时会发生什么?(在文章中,事件在执行事务中的代码中引发)谁会取消它们(当它们未持久化到数据库时)?
谢谢
代码示例展示了一种处理域事件的方式,后面跟着这段话:
请注意,上面的代码将在与常规域工作相同的事务中的同一线程上运行,因此您应避免执行任何阻塞活动,例如使用SMTP或Web服务。而是,应优先使用单向消息传递来与执行这些阻塞活动的其他组件通信。
我的问题是:
1.处理DE时,这是一般性的问题吗?还是只是提到的解决方案的问题?
2.如果在交易中引发域事件且系统不会同步处理它们,应如何处理它们?
3.当我决定序列化这些事件并让调度程序(或任何其他机制)执行它们时,当交易被回滚时会发生什么?(在文章中,事件在执行事务中的代码中引发)谁会取消它们(当它们未持久化到数据库时)?
谢谢