架构模式: 领域事件

架构模式: 领域事件

来自领域驱动设计(DDD)。

上下文

服务通常需要在更新其数据时发布事件。例如,可能需要这些事件来更新CQRS视图。或者,该服务可能参与基于 choreography-based saga编排,并使用事件进行协调。

问题

服务在更新数据时如何发布事件?

解决方案

将服务的业务逻辑组织为DDD聚合的集合,这些聚合在创建或更新时发出域事件。该服务发布这些域事件,以便其他服务可以使用它们。

关联模式

  • Saga和CQRS模式创造了对这种模式的需求
  • Aggregate模式用于构建业务逻辑
  • 事务发件箱模式用于将事件作为数据库事务的一部分发布
  • 事件源有时用于发布域事件

原文地址:https://www.cnblogs.com/paxlyf/p/11293703.html

时间: 2024-11-01 15:35:18

架构模式: 领域事件的相关文章

从三层架构迈向领域驱动设计

本文读者基本要求:从事信息管理系统开发,略懂GOF设计模式及SOLID设计原则,对三层面向过程机械编码厌倦,并且不知道出路在何方,如果还掌握代码坏味和重构手法,那是极好的. 1. 三层架构 理论介绍-->实际经验-->总结反思 1.1 简单介绍三层架构 严格分层架构模式的特点是上层只能访问相邻的下层,其他层次间的调用都不允许.三层架构就是一种严格分层模式,它把职责划分为界面展示.业务逻辑.数据访问三层,还有一个业务实体,前面三层都要依赖它,所以它并不构成一个层.结构如图1. 三层架构的特点是一

Hibernate(1)——数据访问层的架构模式<转>

数据库的概念.逻辑.数据模型概念 应用程序的分层体系结构发展 MVC设计模式与四层结构的对应关系 持久层的设计目标 数据映射器架构模式 JDBC的缺点 Hibernate简介 迅速使用Hibernate开发的例子 Hibernate的核心类和接口,以及他们的关系 POJO和JavaBean的比较 之前的一篇总结文章: 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型 简单来说,就是在软件开发领域,可以用模型表示真实世界的实体.针对数据库就分为: 概念模型(

Lind.DDD.Events领域事件介绍

回到目录 闲话多说 领域事件大叔感觉是最不好讲的一篇文章,所以拖欠了很久,但最终还是在2015年年前(阴历)把这个知识点讲一下,事件这个东西早在C#1.0时代就有了,那时学起来也是一个费劲,什么是委托,哪个是事件,搞的大家是糊里糊涂,进入C#2.0时代后,大叔也买了一本书,对于delegate和event这两个知识点看了至少有20几遍,感觉稍微有点明白了,明白了其中的真谛和用意. 委托:方法的规范,方法的模板,可以代表一类方法的集合 事件:委托的实例,事件在使用之前需要为它赋值,当然赋的就是一个

《企业应用架构模式中文版》学习笔记(转)

本书先介绍了一些企业应用开发的基础知识,比如分层架构.WEB表现.业务逻辑.数据库映射.并发.会话.分布策略等等.通过使用场景.解决方案.UML等手段详细介绍了设计模式(包括一些常用的设计模式GOF23和本书上新创的设计模式).了解书中这些模式是干什么的.它们解决什么问题.它们是如何解决问题的.这样,如果你碰到类似的问题,就可以从书中找到相应的模式.可以为你节约成本.缩短项目周期时间.避免风险,以确保项目能够完美的完成. 一.三个基本层次:表现层.领域层.数据源层 层次 职责 表现层 提供服务,

Android MVPR 架构模式-Part1

Android MVPR 架构模式-Part1 原文链接 : MVPR: A FLEXIBLE, TESTABLE ARCHITECTURE FOR ANDROID (PT. 1) 原文作者 :Matthew Dupree 译文出自 : 开发技术前线 www.devtf.cn 译者 : chaossss 校对者: Mr.Simple 状态 : 完成 全面的单元测试能提高内部系统的代码质量,因为系统的每一个组件都需要被测试,因此每个单元都需要在系统外被构建,在测试环境中进行测试.对对象进行单元测试

软件设计要素初探:架构模式

在 "软件设计要素初探" 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素.本文探讨系统组件交互的架构模式. 架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构.组件化是使用架构模式的前提. 可参阅 <面向模式的软件架构>了解更多架构模式. 分层模式 分层模式: 将应用划分为多个层次,定义各层的接口.任务抽象及消息格式,以及各层之间的通信与交互.业务系统通常会划分为业务逻辑层.服务层.领域层.数据层.网络栈协议是分层模式的典型应用.应用分

如何运用领域驱动设计 - 领域事件

开篇 距离发布上一篇该系列的文章好像已经过了快一个半月了,好吧,我托更了??.一晃就已经到了3月份,在这樱花??盛开的季节,终于得重新连载该系列了.在停更的期间时不时会收到大家关于DDD的留言和问题,一旦我有时间一定会回复大家的问题.在此,衷心感谢大家对本系列文章的支持??. 概述 在实践领域驱动设计(DDD)的过程中,我们往往会遇到多个领域对象相互交互的情况.比如聚合根A在执行某操作之前需要得到聚合根B的某个信号(或某些数据).如果在单体应用程序中,我们有条件和机会使得两者进行强引用来完成操作

ABP领域层——领域事件(Domain events)

ABP领域层——领域事件(Domain events) 基于DDD的现代ASP.NET开发框架--ABP系列之14.ABP领域层——领域事件(Domain events) ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 在C#中,一个类可以定义其专属的

应用程序框架实战十五:DDD分层架构之领域实体(验证篇)

在应用程序框架实战十四:DDD分层架构之领域实体(基础篇)一文中,我介绍了领域实体的基础,包括标识.相等性比较.输出实体状态等.本文将介绍领域实体的一个核心内容——验证,它是应用程序健壮性的基石.为了完成领域实体的验证,我们在前面已经准备好了验证公共操作类和异常公共操作类. .Net提供的DataAnnotations验证方法非常强大,Mvc会自动将DataAnnotations特性转换为客户端Js验证,从而提升了用户体验.但是客户端验证是靠不住的,因为很容易绕开界面向服务端提交数据,所以服务端