• 当您开发信息系统来自动化业务活动时,您就是在对业务进行建模。您设计的抽象、实现的行为以及构建的 UI 交互都反映了业务 - 它们共同构成了域的模型。 这个项目可以用作库包,或作为灵感,或两者兼而有之。它提供了足够的战术领域驱动设计模式,并针对事件溯
  • 来自OSKAR DUDYCZ的DDD变化旅程。 这是我目前所处的进化阶段:我从经典聚合开始,遵循领域驱动设计和典型的面向对象战术模式。因此,将数据和行为封装在一个类中。然后,仅允许通过公共方法进行更改,并仅以只读模式公开数据。
  • CRUD(创建读取更新删除)虽然看起来很简单,但在大型系统中,它常常会导致代码混乱、复杂。 创建、读取、更新、删除 (CRUD) 非常常见。一般来说,它只是简单的表单,用于将数据添加到数据库并提供记录列表,您可以深入到特定记录以修改/更新现有记录或可能删除 icon
  • Rama 完全使用 Java API 进行编程,与使用 Ruby on Rails 构建的官方 Mastodon 实现相比,我们的实现大大减少了代码 icon
  • PostgreSQL不仅仅是另一个数据库,它是一个包含可以改变您处理数据方式的功能的系统。 1、元组是行的物理版本PostgreSQL的基础之一是元组(tuple)的概念,这让许多新手感到惊讶。 < icon
  • 在当今快节奏、互联的世界中,企业和开发人员不断寻求创新方法来构建高效且可扩展的应用程序。事件驱动架构 (EDA) 是最引人注目且势头强劲的架构范例之一。事件驱动的应用程序旨在响应实时事件,并已成为构建能够适应动态环境并蓬勃发展的系统的首选。事件驱动应用程序成功的核心是集成,它在确保各种服务和 icon
  • 用例:下订单。成功下订单后(付款成功并且向餐厅成功下订单后),订单服务会发布一个事件:食品配送合作伙伴服务,用于安排送货人员到达餐厅、挑选食物并将订单配送到用户的地址将积分记入用户帐户的忠诚度服务通知服务通过电子邮件/短信/移动推送 icon
  • 以下是对构建 EDA 应用程序时应考虑的挑战性问题: 1.缺乏幂等处理消费者可能会对事件进行多次处理(或者您可能需要重放事件、故障等)。使用#幂等性 可以帮助您构建没有副作用的解决方案。 icon
  • 变更数据捕获 (CDC) 是数据工程中的强大工具,在过去几年中在各种组织中得到了巨大的应用。这是因为它能够以非常低的延迟将事务数据库紧密集成到您企业中的许多其他系统中。 CDC 对事务数据库中发生的更改(例如插入、更新和删除)做出响应,并将这些更改实时发送 icon
  • 在数据库上下文中,“软删除”模式是指一种处理记录删除的方法,该方法涉及将记录标记为已删除,而不是从数据库中物理删除它们。此方法与“硬删除”相反,“硬删除”中的记录会从数据库中永久删除。 以下是软删除模式的关键组成部分: icon
  •  本文档讨论了工作流模式,工作流模式提供了一种将长期运行的业务流程建模为步骤序列的方法。本文还描述了工作流如何做出决策但并不实际执行决策,而是将执行委托给系统的其他部分。维护工作流标识对于将事件关联回正确的工作流实例非常重要。确定了实施工作流中的各种挑战,例如处理并发 icon
  • 在事件建模中,以事件的形式保存业务数据。事件是已经发生的事实,我们在每次操作后都会将其存储起来。事件流记录了我们的记录所发生的一切。很遗憾,你不能更改事件,因为它们是不可变的。但你可以在最后添加一个新的事件,弥补过去的错误。 下面6种方法介绍如何从 icon
  • 使用 事件溯源EventSourcing 的感觉非常棒。系统中有发生的事件的历史记录。这使得调试变得更加容易。 然而,事件溯源并不能保护我们免受用户犯错误的影响。 我们应该如何处理用户输入错误的情况呢?< icon
  • 双时态事件源将数据存储为一系列事件,这些事件告诉数据发生了什么,并且数据有两个关联的时间点,一个是数据进入系统的时间,另一个是数据生效的时间。 这篇文章讲述了我们 8 年多的双时态事件溯源经验,以及展示如何实现这一目标的代码示例。 icon
  • 对于变更数据捕获 (CDC) 的用户来说,Postgres 版本 16(今年 9 月发布)中最令人兴奋的功能之一是支持从备用服务器进行逻辑复制。您现在可以将 Debezium 等 CDC 工具指向副本服务器,而不是连接到主服务器,这从负载分布的角度来看非常有趣。 icon
  • 您是否想知道如何将模型从 CRUD 模型实际切换到 EventSourcing?有件事你应该考虑。必须为现有数据发布的初始事件。也称为迁移事件。 在某个时刻,人们将达到能够从旧模型切换到新模型的时刻。精心设计、事件来源的聚合。 icon
  • 使用Map 作为 JPA 存储库方法的返回类型可能有助于在服务和数据库之间创建更直接的交互。不幸的是,Spring 不允许这种转换自动发生。在本教程中,我们将检查如何克服这个问题并学习一些有趣的技术来使我们的存储库更加实用。 我们可以实现一种方法将结果列表 icon
  • 在构建事件驱动架构时,您将使用消息/事件在系统之间传递信息。这些消息的内容取决于您。这很好,因为它变得灵活,但同时也是一个问题,因为它很灵活! 许多构建事件驱动解决方案的人都是从在系统之间引发消息/事件开始的,而没有过多考虑事件设计。 icon