DDD领域事件

     

大局事件风暴:寻找差距

15 4K

在事件风暴上,实现下面几个步骤: 我们首先进行了一次混沌探索,从每个人那里收集了相关的领域事件。 之后,我们通过整理事件、删除重复事件和微调事件来组织混乱。 会议结束时,我们将事件按时间顺序排列。 我.

Java的类型化状态机

32

作者:不喜欢基于事件的状态机实现,因此我创建了一个类型化、函数式、简单且直接的状态机库。点击标题安装:<dependency>    <groupId>com.tsm4j</groupId>    <.

DDD中事件与命令比较

49 1 2K

在探索领域驱动设计主题时,事件和命令之间的差异以及何时应该使用哪些事件和命令?事件事件 – 当我们想要传达某事已发生并且我们并不真正关心谁将收到此通知以及他们将如何处理它时,我们会发送它。许多订阅者可.

事件溯源与流水账的结账模式

36 19K

没有人知道事件溯源Event Sourcing是谁发明的。我无意中听说是汉谟拉比发明的。为什么?因为他规范了第一套会计规则。事件溯源Event Sourcing(活动事件源)就像记账一样,我们记录每项.

绕开事件驱动架构5个坑

45 3K

事件驱动架构 (EDA) 并不是什么新鲜事物,如果您四处搜索,您一定会找到很多有关此架构概念的信息。您会了解企业服务总线 (ESB) 或队列的差异、领域驱动设计 (DDD) 的重要性,甚至找到有关如何.

事件风暴中如何识别聚合?

40 5K

事件风暴是一种强大的技术,用于映射不同抽象级别的系统的复杂性。这种协作方法使团队能够可视化并理解域内的事件、操作和策略的流程。 大局级别在事件风暴的大局层面,主要目标是建立系统的总体视图。该阶段是整个.

Serverless中为什么事件设计很重要

42

在构建事件驱动架构时,您将使用消息/事件在系统之间传递信息。这些消息的内容取决于您。这很好,因为它变得灵活,但同时也是一个问题,因为它很灵活!许多构建事件驱动解决方案的人都是从在系统之间引发消息/事件.

运行大局事件风暴的分步指南

36 3K

从激励观众到阅读您所在领域的故事,以下是您在大事件风暴期间将经历的所有步骤。终于,我们迎来了真正的事情!我们已经回顾了大事件风暴的准备工作。现在我们已经准备好了一切,让我们看看如何在实践中举办这个研讨.

在大局事件风暴开始时该说什么

28 2K

恭喜!现在房间里有 10 个人或更多人看着您,想知道如何开始……不要惊慌:这是您的简报脚本。人们在空旷的设计空间前讨论的图画。 这就是大局事件风暴会议开始前的样子。您的大局事件风暴简报应介绍: 总体目.

如何准备大局事件风暴研讨会

25 2K

事件风暴是开始使用功能架构的绝佳方法。这里有 5 个重要的准备技巧,可帮助您的第一次研讨会取得成功!先做作业!您已经决定大局事件风暴是可行的方法,并且您渴望开始一个。不过没那么快!与许多事情一样,缺乏.

3分钟大局事件风暴

80

这篇文章总结了关于大局事件风暴的文章的要点。它还包含有关大局事件风暴后该怎么做的参考!为什么要举办一场大局事件风暴我们首先讨论了为什么要举办一场大局事件风暴?我们看到事件风暴是大前期设计和 100% .

使用 Spring Modulith 进行事件外部化

162 9K

在本文中,我们将讨论在@Transactional块中发布消息的需求以及相关的性能挑战,例如延长的数据库连接时间。为了解决这个问题,我们将利用Spring Modulith的功能来监听 Spring .

SpringBoot中处理ApplicationContextEvent和自定义ApplicationEvent

50 6K

在 Spring 框架中,事件处理是 Spring 组件以松散耦合方式相互通信的一项基本功能。任何 Spring 组件都可以发布事件,而其他组件则可以接收和响应事件。事件发布组件需要 Applicat.

案例研究:物流中的超通用框架

69

一家非常大的物流公司聘请了一家咨询公司来建立一个网上商店来购买该物流公司的产品。该系统的核心是一个使用通用订单框架构建的专有订单引擎。我们检查了系统并发现以下行为: 一切都是命令。如果您想更改地址、购.

领域建模中容易出错的部分

100 3K

领域建模是考虑实体和它们之间的关系?啊,不太好。 虽然这通常是典型的建议的例子,它实际上是落后的。 不要构建数据库模式/结构。如何对复杂的领域进行建模?在领域驱动设计中,您在领域建模时可能会考虑实体、.

在 Spring MVC 中使用枚举作为请求参数

151 5K

枚举是Java中的一种特殊数据类型,用于表示一组固定的常量。控制器方法可以采用枚举作为参数,Spring MVC会自动翻译将传入请求参数的值设置为适当的枚举常量。枚举数据类型的示例:enum Coff.

从关系数据转向事件指南

105

在事件建模中,以事件的形式保存业务数据。事件是已经发生的事实,我们在每次操作后都会将其存储起来。事件流记录了我们的记录所发生的一切。很遗憾,你不能更改事件,因为它们是不可变的。但你可以在最后添加一个新.

如何从CRUD中捕捉意图事件?

217 1

CRUD(创建读取更新删除)虽然看起来很简单,但在大型系统中,它常常会导致代码混乱、复杂。创建、读取、更新、删除 (CRUD) 非常常见。一般来说,它只是简单的表单,用于将数据添加到数据库并提供记录列.

8年双时态事件溯源经验

98 4K
双时态事件源将数据存储为一系列事件,这些事件告诉数据发生了什么,并且数据有两个关联的时间点,一个是数据进入系统的时间,另一个是数据生效的时间。这篇文章讲述了我们 8 年多的双时态事件溯源经验,以及展示.

基于状态机实现的DDD聚合根Order对象

110 3K

展示一段示例代码 - Order 类。此类在我们的示例 DDD/CQRS/ES 应用程序中使用。我们正在改进此应用程序,因此这是记录某些意见和更改的好机会。module Ordering  class.

使用双时态 EventSourcing 修复过去并应对未来

115 8K

使用 事件溯源EventSourcing 的感觉非常棒。系统中有发生的事件的历史记录。这使得调试变得更加容易。然而,事件溯源并不能保护我们免受用户犯错误的影响。我们应该如何处理用户输入错误的情况呢? .

DDD中如何为聚合模型减负?

135 2K
业务需求场景: 商品应在提交订单时为客户保留。 仅仅将商品添加到购物车并不能保证产品的可用性。 客户不能将已经缺货的产品加入购物车。 事实上,这并不是什么花哨的要求。我曾经做过一个电子商务项目,就有这.

Sqids:根据数字生成简短的唯一ID

490 1 3K

Sqids (发音为“squids”)是一个开源库,可让您根据数字生成简短的唯一 ID,类似 YouTube 的 ID。这些 ID 很短,可以从自定义字母表生成,并且保证无冲突。例如:https://.

Debezium会丢失事件吗?

135 2K

是否存在这样的情况:数据库中的记录被插入、更新或删除,但 Debezium 无法从事务日志中捕获该事件并将其传播到下游消费者?一般来说,Debezium 本身绝不会错过任何事件。如果确实如此,则被认为.

DDD领域消息建模表示法

280
设计松耦合系统需要的不仅仅是精心设计的边界。仔细定义有界上下文之间的交互同样重要。有界上下文BC是软件架构中与域的一部分对齐保持一致的子系统。它可以作为微服务或单体中的模块来实现。领域消息流程图是一个.

Spring Boot Modulith模块化指南

524 22K
本文将教您如何使用 Spring Boot 构建 modulith 并使用 Spring Modulith 项目功能。Modulith 是一种软件架构模式,假设将您的整体应用程序组织成逻辑模块。此类模.

基于事件源的工作流模式

168 2K

 本文档讨论了工作流模式,工作流模式提供了一种将长期运行的业务流程建模为步骤序列的方法。本文还描述了工作流如何做出决策但并不实际执行决策,而是将执行委托给系统的其他部分。维护工作流标识对于将事件关联回.

代数化函数式领域建模的案例

84 2K

我们可以完全实现一个运算,而不需要查看任何组合运算的具体实现。就像你在数学中操作代数表达式一样。假设将generateTrades作为领域服务 TradingService 的一部分。其目的是生成当天.

Spring Modulith增加事件外部化的支持

345 2K

SpringBoot应用程序的事务绑定发件箱模式 实现,专门基于Kafka、AMQP和JMS的代理。应用程序模块之间交换的一些事件可能对外部系统感兴趣。Spring Modulith 允许将选定的事件.

EDA中事件内容的设计权衡

370

用例:下订单。成功下订单后(付款成功并且向餐厅成功下订单后),订单服务会发布一个事件:食品配送合作伙伴服务,用于安排送货人员到达餐厅、挑选食物并将订单配送到用户的地址将积分记入用户帐户的忠诚度服务通知.