CQRS项目和架构 - 在哪里容纳逻辑

时间:2017-03-17 01:39:15

标签: architecture cqrs

我正在尝试确定容纳某些逻辑(或添加更多新项目)以适应CQRS架构的最佳位置。我需要连接到数据库并触发/询问其他服务。该服务目前是一个CMS,但最终将包括其他服务(支付,金融网络服务等)。

基本上我选择了Lauri Taimila的架构(请参阅此article以获取更多信息),因为这最适合我当前和未来的需求。

我的项目总结如下:

  • 服务 - 在CMS中托管的MVC Web库。
  • 域 - 包含所有域实体或聚合。
  • 业务 - 包含所有用例。
  • 持久性 - 数据访问(特别是针对SQL Server的EF)。
  • 贯穿各领域的关注点 - 一般常用功能。
  • StateDTOs - 聚合的州代表。

我有3个商业用例。

  1. 从UI更新计划任务时间戳。这导致两个 操作;将新时间写入数据库并更新CMS 调度程序与新的时间。第一次操作相对容易 正如在计算文章中广泛展示的那样 - 包括Lauri's - 关于如何写入数据库。第二 操作是我不清楚的地方:这应该在哪里执行 我需要使用CMS库并调用扩展CMS的自定义类 功能?
  2. 从UI启动临时任务。这将启动CMS调度程序 任务通俗易懂。 UI需要使用更新进行更新(禁用 按钮,显示进度条等)。我倾向于民意调查(每10人一次) 从服务层开始大约几秒钟,然后更新UI。那 意味着通过业务项目进行查询。而不是访问 再次,数据库,我需要查询CMS调度程序并获取 最新状态。这个逻辑应该放在哪里?
  3. 添加审核以跟踪运行状况/应用状态。这需要 在每个审计请求上将单个记录写入数据库。它 可以从Service层(控制器)调用来审计什么 按钮被按下了。可以从自定义CMS类调用它 跟踪任务进度。它可以从任何地方调用! 是否应将此作为IAudit添加到业务项目中 具体的审计类(和IAuditRepository)?
  4. 非常感谢任何帮助。

0 个答案:

没有答案