• 本文介绍如何在微服务架构通过事件编排实现业务流程的无限灵活实现,克服了以往SOA中ESB总线的中央治理的局限。 关键词:1.在微服务架构中,遇到长时间运行并跨越多个微服务边界调用的流程并不少见。 2.具有
  • 本文是讨论在使用DDD+CQRS+EventSourcing中事件建模的重要性,通过抓取事件建模这个线索,能够起到纲举目张的效果。 DDD实现中的一个非常大错误解释领域驱动设计(DDD)是一种奇妙的技术,试图使我们
  • 本文是讨论微服务和领域事件架构下一些需要长时间运行服务的设计问题,这些长时间运行的服务任务是因为有人工流程介入导致,比如请假需要所在部门和人事部门等两个部门领导批准,那么请假这个服务就可能需要一两天时间才能完成,因为需要两个部门领导都在电脑前且点按了批准按钮,这个请假服务流程才结束。 icon
  • icon
  • 早在一年前就有听说过jdon,近期又对banq给出的几个例子结合框架(jdonframework)源码读了一下,对于jdon的核心思想->领域驱动建模(Domain Driven Design)有些粗浅的理解。我个人的认识是:1.领域,即业务模型,如banq给过的两个例子:比赛、机器人。这里 icon
  • 日常编程中你使用过状态机吗?也就是状态模式?首先问题是为什么要使用状态机,解答这个问题必须回答如何对抗软件的复杂性?软件的复杂性是因为一份代码做两件事引起的,很多领域模型中都包含一个半残的隐晦的状态机,如果不将状态管理从领域模型中分离出来,相当于让领域模型做两件事,一件事代表实体属性,一件事表达实体 icon
  • Cribbb是一个使用DDD聚合根和领域事件Domain Events概念开发的PHP开源通知框架:cribbb/cribbb · GitHub icon
  • 恩,本人对EDA类库有几个基本的需求:1、支持POCO,消息本身不能继承父类,这样利于序列化和远程传输2、不能使用字符串作为消息标识,这样容易造成拼写错误3、消息订阅和发布要尽量简单,易于使用 icon
  • 以下是我关于经典DDD的简单理解:在经典的DDD中,大量使用领域服务 Domain Service 和 Factory 来修改聚合根。复杂的聚合根创建使用 Factory,将Factory 所需的参数全部传进去,Factory内部进行资源调配,包括逻辑验证,仓储 Repository icon
  • 各位大大,当业务功能涉及到多个聚合的时候,有多种方式进行处理,其中有两种方式使用比较普遍,一种是领域服务,另一种是领域事件,也不排除两种同时存在的情况,那如何取舍呢? 一个系统中很多业务功能都会涉及到2个或多个聚合,如果使用领域服务,将会导致在领域层会存在大量的领域服务类,这种方式 icon
  • SimplCommerce是一个基于.NET的超级简单、跨平台、模块化的电子商务系统,技术特点:1. ASP.NET MVC Core 1.1.0 on .NET Core 1.1.02. Entity Framework Core 1.1.03. ASP.NET Ident icon
  • 下面是 saga的代码,用JS实现的,省略了多余代码。希望banq大哥和各位指点。 icon
  • 比如一个模型中,有一个方法,就拿注册来说吧,注册需要判断用户名是否重复,这个判断肯定需要查询数据库了,那么这个在模型中如何实现呢,还有一些类似需要查询数据库字典表的数据来判断是否走下面的代码,这些类似的查询在模型中,应该怎么实现呢?? icon
  • 在聚合1中,对象A是一个实体对象,在聚合2中,对象A是一个值对象,这种情况,在模型中该如何设计?是为聚合1,聚合2分别定义对象A,还是他们可以重用同一个对象A?例如,在汽车这个聚合中,因为需要对每个轮胎进行跟踪,所以需要区分这些轮胎,因此,在汽车聚合中,轮胎是实体对象,在这个聚合中,它们需要 icon
  • 在实践CQRS架构的时候,不太理解事件源的重建,所以一直不敢用eventsourcing。对事件的持久化可以理解,但对读取事件并使其重建聚合不知道该如何实现?比如分析一个持久化然后重建的流程:1、领域对象在特定时刻有特定的状态,此时发生状态改变的事件2、将事件进行持久化 icon
  • 聚合根对象中一般都存在着对本领域内其他对象的引用,当修改内部引用对象的状态的时候,由聚合根上的方法发出相应的内部领域事件,然后在聚合根上的内部领域事件处理器来处理相关的领域事件,同时修改状态,那同一个聚合中的对象之间交互采用引用调用修改呢?还是从新发出一个事件来进行修改呢?比如User聚合根 icon
  • 在不同的上下文之间通过事件进行交互,那需要得到返回值的情况下,还叫做事件么?我有些怀疑...因为事件发生就是发生了,其他领域对该事件有何种响应本应该和事件源无关的,但这种需求有确实存在,觉得很矛盾,但如果不使用事件确实又没有其他更好的方式来处理...大家讨论讨论! icon
  • saga中lock money字段时,目的是怕别人更改,这个可以不通过“语言本身或框架本身”实现,而是通过普通的方法达到。伪代码如下: icon