0

我正在讨论分布式域驱动设计背后的一些概念,并且正在构建概念验证。我有三个 C# 解决方案,它们在整个系统中具有特定的职责。

我的解决方案是:

  • 写入模型(从客户端接收命令并创建和发送事件)
  • 读取模型(从写入模型接收事件,创建数据库并向客户端公开 DTO 服务,可能是 2 个单独的解决方案)
  • 客户端(调用服务以获取所需数据并向写入模型发送命令)

所有三种解决方案都通过服务总线使用消息传递(命令、事件)。(在我的情况下是大众运输)。

我的主要问题是:创建带有消息的程序集并让每个解决方案都引用该程序集是常见的做法吗?

额外的功劳:在这个 POC 中,我正在做的事情有什么奇怪或有问题的吗?在创建此类系统时我应该注意的任何其他信息?

4

1 回答 1

4

使用消息创建程序集并让每个解决方案引用该程序集是常见的做法吗?

是的。这通常是消息传递系统的常见做法。例如,许多 NServiceBus 示例都采用这种方法。将此程序集视为代表您的合同。在建立在不同平台上的系统中,这种表示将以 XSD 模式或其他一些模式定义机制的形式出现。

在这个 POC 中,我正在做的事情有什么奇怪或有问题的吗?在创建此类系统时我应该注意的任何其他信息?

到目前为止,一切似乎都非常适合 CQRS。公平地说,我应该提一下,将 CQRS 作为灵丹妙药并围绕它构建系统很容易被冲昏头脑。一起放弃 CQRS 通常是一个明智的决定。继续关注业务领域,并使用 CQRS 作为一种架构风格来实现您的系统,而不是指导它的模型。

于 2012-10-26T18:31:26.313 回答