在领域驱动设计中发布事件

问题描述 投票:0回答:1

鉴于我有一个使用

Domain-Driven Design
的项目,并且我有以下层:

1:域

2:申请服务

3:立面

4:基础设施

现在,让我们考虑一个场景,其中我有一个创建某些东西的命令。我在我的应用程序服务中处理这个命令。创建过程完成后,我想将事件发布到外部服务。

问题是:

Which layer is responsible for publishing the event?

What is the best practice in this context?

如果您能提供有关此事的任何参考资料,我将不胜感激。

domain-driven-design software-design
1个回答
0
投票

发布事件的责任可能分为两层:

  1. 域 - 您的域对象将决定触发哪些事件以及何时触发。
  2. 基础设施 - 一旦您知道将发布什么事件,基础设施层就负责与其他服务或主题等进行实际集成,从而将事件传递给其消费者。

划分职责意味着将来如果您想要将事件技术从 RabbitMQ 更改为 Kafka,您只需要更改基础设施(集成)组件。您的域仍会表现相同,并导致相同的事件同时发布。

© www.soinside.com 2019 - 2024. All rights reserved.