• 假设我们的业务规则说,当用户下订单时,如果产品的价格在用户的信用限额/余额之内,则订单将被履行。否则将无法实现。看起来真的很简单。这在整体/单体应用中非常容易实现。整个工作流程可以视为1个单事务。当所有内容都在单个数据库中时,提交/回滚很容易。对于具有多个数据库的分布式系统,这将非常
  • 使用 CRUD,当您通过创建、更新、删除进行状态更改时,您并没有明确捕获它发生的原因。例如,如果您正在对客户执行更新,为什么会发生这种情况?他们的地址变了吗?他们的贴现率有变化吗?使用基于 CRUD 的方法,您并不确切知道,您必须根据所做的更改来暗示它。使用 CQRS,您的所有命令都 icon
  • 微服务的流程编排将成为下一个要解决的大问题。在撰写本文时,有几种解决方案试图在该领域竞争,主要是构建自己的(文本)领域特定语言来描述业务流程。在我看来,编排应该改为在BPMN 2.x中表达,因为它是为此目的而精心设计的,易于理解且成熟的语言。 icon
  • 基于微服务的应用程序是一个分布式系统。整个系统由多个较小的服务组成,并且这些服务一起提供了整体应用程序功能。尽管这种体 icon
  • 一个支持多种语言的分布式事务框架,支持saga、tcc、xa、2-phase message、outbox patterns#发件箱 第一个致力于微服务分布式事务解决方案的开源 Golang 项目。 支持多种模式:Saga、XA、TCC、OutBox。 支持多 icon
  • 由于许多新应用程序是作为微服务系统构建的,因此双重写入已成为一个普遍的问题。它们是导致数据不一致的最常见原因之一。更糟的是,许多开发人员甚至都不知道双重写入是什么。 什么是双重写入?双重写入描述了您在两个个 icon
  • Revolut需要记录每个与金钱有关的事件,它们都很重要的;这是一个水晶球,我们必须小心接住并处理。此类事件包括汇款,更改用户数据,任何卡操作等。与处理财务操作相关的所有事情都需要100%的一致性,金钱是非常敏感的事情。同时,我们每天必须跟上成千上万新用户的步伐。指数级放大还影响功能交付。我 icon
  • 本文探讨在微服务架构中实现事务处理时出现的挑战以及用于处理它们的可能解决方案。当从单体或整体架构迁移到微服务架构(MSA)时,处理分布式系统带来的复杂性是一项挑战。事务处理是此问题的重点。使用本地事务在Web应用程序中完成的典型数据库事务现在是一个复杂的分布式事务问题。在本文中,我们 icon
  • 多年来,微服务已变得非常流行。微服务是分布式系统。它们更小,模块化,易于部署和扩展等。开发单个微服务应用程序可能会很有趣!但是处理跨越多个微服务的业务交易并不好玩!MicroService体系结构具有特定的职责。为了完成应用程序工作流程/任务,可能需要多个MicroServices一起工作。 icon
  • 在本文中,您将学习如何在 Spring Boot 中使用 Kafka Streams。我们将依赖 Spring Kafka 项目。为了很好地解释它是如何工作的,我们将实现一个 saga 模式。saga 模式是一种跨微服务管理分布式事务的方法。该过程的关键阶段是发布触发本地事务的事件。微服务通 icon
  • 这个博客是如何使用 Axon 和 Spring Boot 实现 Saga。Saga 是一个强大的概念,但是,您需要在实现 Saga 之前考虑其他选项。你必须记住,Saga 应该只编排这个过程。业务逻辑应保存在聚合中。Saga 的使用意味着更多的数据库流量和 CPU 能力用于序列化和反序列化实 icon
  • 本案例源码是如何使用Spring Boot 和Kafka Streams实现基于SAGA 模式的分布式事务。有三个微服务: 订单服务--它向Kafka主题发送订单事件,并协调分布式事务的过程 支付服务--它根据订单价格在客户账户上执行本地事务 库存服务 icon
  • Eventuate是解决微服务架构中固有的分布式数据管理问题的平台,使您能够专注于业务逻辑。Eventuate包括: Eventuate Tram - 使用传统(例如 JPA/JDBC 和实体框架)持久性的服务框架。您可以轻松地将 Eventuate Tram 添加到 icon
  • Occcurrent 是一个事件溯源库,它是一组用于 JVM 的事件溯源实用程序,由Johan Haleby创建。能够在不依赖Occurrent或任何其他库的情况下设 icon
  • 一旦你学会用业务眼光去看,就不会有任何需要用多线程同步锁实现的竞赛条件了。比方说,以下是需求。 1. 如果订单已经发货了,不要让用户取消订单。 2. 如果订单已经被取消,不要让用户运送订单。 这里的竞赛条件是当我们有两个用户在看同一个订单,这个订单既 icon
  • 优步的使命是帮助我们的消费者在全球数千个城市轻松前往任何地方并获得任何东西。在其核心,我们捕捉消费者的意图并通过将其与一组正确的提供者进行匹配来实现它。 作业履行(Fulfillment )是“向客户提供产品或服务的行为或过程”。优步的作业开发平台协调和管理与数百万活跃 icon
  • NorthOne是为小型企业提供银行服务的公司,他们是如何结合serverless和领域驱动设计以及EDA实现银行工作流程的?NorthOne为小型企业提供银行服务。实际上,NorthOne是一个存款账户,具有许多集成功能,几乎就像是小型企业的操作系统。基本上,NorthOne会选择 icon