DDD领域事件
EventStorming; 超越软件建模的持续发现
我们看到许多公司正朝着微服务架构迈进。微服务架构的一大缺陷是专注于技术,微服务需要多大,代码行数,我们在微服务中放置什么实体,以及使用休息作为它们之间的通信。但要取得成功,我们需要关注问题空间,通过掌.
DDD的战术模式
DDD(领域驱动设计)是一种软件设计方法的主张,这种方法非常全面,因为它提供了代码级别战术、项目组织级别甚至整个组织的战略级别的设计工具。Eric Evans 2003年的领域驱动设计:解决软件核心的.
使用Datomic实现没有麻烦的事件溯源
无论使用何种实现技术(EventStore / Kafka /SQL ......),“传统事件溯源”方法会一些常见问题:设计事件类型和事件处理程序是一项艰苦的工作比如:你设计一个问答式的网站应用,那.
一张图解释用户故事、DDD和事件风暴的关系
事件概念正在重塑分布式系统的未来
这是Akka的创始人和Lightbend的创始人Bonér博内尔在2018 Qcon伦敦大会上的演讲,他已经使用事件概念20多年,现在引起了越来越多人的兴趣,他认为这是因为下面四个原因:(1)云和多核.
领域模型与状态机
日常编程中你使用过状态机吗?也就是状态模式?首先问题是为什么要使用状态机,解答这个问题必须回答如何对抗软件的复杂性?软件的复杂性是因为一份代码做两件事引起的,很多领域模型中都包含一个半残的隐晦的状态机.
微服务中的事件、流程和长时间运行业务
本文是讨论微服务和领域事件架构下一些需要长时间运行服务的设计问题,这些长时间运行的服务任务是因为有人工流程介入导致,比如请假需要所在部门和人事部门等两个部门领导批准,那么请假这个服务就可能需要一两天时.
业务流程的新实现:微服务和事件编排
本文介绍如何在微服务架构通过事件编排实现业务流程的无限灵活实现,克服了以往SOA中ESB总线的中央治理的局限。关键词:1.在微服务架构中,遇到长时间运行并跨越多个微服务边界调用的流程并不少见。2.具有.
SimplCommerce: 超简单、跨平台、模块化的电子商务系统
SimplCommerce是一个基于.NET的超级简单、跨平台、模块化的电子商务系统,技术特点:1. ASP.NET MVC Core 1.1.0 on .NET Core 1.1.02. Entit.
通过事件风暴和DDD建立微服务时优先考虑事件
本文是讨论在使用DDD+CQRS+EventSourcing中事件建模的重要性,通过抓取事件建模这个线索,能够起到纲举目张的效果。DDD实现中的一个非常大错误解释领域驱动设计(DDD)是一种奇妙的技术.
Cribbb基于DDD/Domain Event领域事件的开源PHP通知系统
Cribbb是一个使用DDD聚合根和领域事件Domain Events概念开发的PHP开源通知框架:cribbb/cribbb · GitHub几乎所有Web应用都有一个通知提醒系统,这些通知系统都有.
saga转账的lock
saga中lock money字段时,目的是怕别人更改,这个可以不通过“语言本身或框架本身”实现,而是通过普通的方法达到。伪代码如下:// saga 转账方法function transfer(fro.
Saga的设计
下面是 saga的代码,用JS实现的,省略了多余代码。希望banq大哥和各位指点。// 定义Saga的一个例子var T = Saga.extend({ // 启动方法 startup: .
经典DDD + CQRS+ES 的一些疑问
以下是我关于经典DDD的简单理解:在经典的DDD中,大量使用领域服务 Domain Service 和 Factory 来修改聚合根。复杂的聚合根创建使用 Factory,将Factory 所需的参数.
领域服务和领域事件如何取舍?或共存?
各位大大,当业务功能涉及到多个聚合的时候,有多种方式进行处理,其中有两种方式使用比较普遍,一种是领域服务,另一种是领域事件,也不排除两种同时存在的情况,那如何取舍呢? 一个系统中很多业务功能.