事件溯源教程

     

数据更改事件的三种类型

13 12K

数据变更事件是Debezium等变更数据捕获 (CDC) 解决方案的核心。它们描述对数据库中特定记录所做的更改,并允许事件使用者根据此信息采取行动,从而实现广泛的用例,例如实时 ETL(通过将更新的数.

Spring Boot中配置AuditListener实现操作留痕审核

32 10K

Spring Boot Data 提供支持透明地跟踪谁创建了实体或更改了实体以及这些事情发生的时间。所有记录均清晰保存。例如,如果一位用户进入该站点并登录该站点。然后这些时间会保存在数据库中,当用户再.

TigerBeetle:世界上最快的会计数据库

52 1 8K

TigerBeetle 是一个财务会计数据库,专为关键任务安全性和性能而设计,为金融服务的未来提供动力。希望让其他人能够轻松构建下一代金融服务和应用程序,而无需从头开始拼凑会计或分类帐记录系统。Tig.

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

36 19K

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

绕开事件驱动架构5个坑

45 3K

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

什么是事件驱动编程范式?

56

事件驱动编程是一种范例,其中程序的执行由用户操作或消息等事件决定。程序通过预定义的操作响应事件,从而允许异步和响应行为,这在 GUI 应用程序和分布式系统中常见。事件驱动编程范式的优点 实现异步处理,.

TimescaleDB 入门

42 3K

在本文中,我们将探讨TimescaleDB ,这是一个构建在PostgreSQL之上的开源时间序列数据库。我们将深入研究其特性,检查其功能,并讨论如何有效地与该数据库交互。什么是TimescaleDB.

Akka,事件溯源和分布式数据库迁移

36

VirtusLab 的基于事件溯源的 Akka 应用程序的底层数据库迁移案例研究。这篇文章介绍了一项针对大型工业事件溯源项目的研究,其中涉及了对Akka和数据库选择的讨论。作者对Akka Persis.

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

42

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

Spring Data JPA 中返回映射而不是列表

54 5K

使用Map 作为 JPA 存储库方法的返回类型可能有助于在服务和数据库之间创建更直接的交互。不幸的是,Spring 不允许这种转换自动发生。在本教程中,我们将检查如何克服这个问题并学习一些有趣的技术来.

什么是软删除?何时使用?

212 2K

在数据库上下文中,“软删除”模式是指一种处理记录删除的方法,该方法涉及将记录标记为已删除,而不是从数据库中物理删除它们。此方法与“硬删除”相反,“硬删除”中的记录会从数据库中永久删除。以下是软删除模式.

使用Postgres 16 备用服务器实现CDC逻辑复制

83 16K

对于变更数据捕获 (CDC) 的用户来说,Postgres 版本 16(今年 9 月发布)中最令人兴奋的功能之一是支持从备用服务器进行逻辑复制。您现在可以将 Debezium 等 CDC 工具指向副本.

从关系数据转向事件指南

105

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

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

217 1

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

8年双时态事件溯源经验

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

从 Rails CRUD 迁移到事件溯源

79

您是否想知道如何将模型从 CRUD 模型实际切换到 EventSourcing?有件事你应该考虑。必须为现有数据发布的初始事件。也称为迁移事件。在某个时刻,人们将达到能够从旧模型切换到新模型的时刻。精.

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

115 8K

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

变更数据捕获 (CDC) 的七种使用方法

242 4K

变更数据捕获 (CDC) 是数据工程中的强大工具,在过去几年中在各种组织中得到了巨大的应用。这是因为它能够以非常低的延迟将事务数据库紧密集成到您企业中的许多其他系统中。CDC 对事务数据库中发生的更改.

基于事件源的工作流模式

168 2K

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

DDD:从聚合到函数组合的改变

233 2

来自OSKAR DUDYCZ的DDD变化旅程。这是我目前所处的进化阶段:我从经典聚合开始,遵循领域驱动设计和典型的面向对象战术模式。因此,将数据和行为封装在一个类中。然后,仅允许通过公共方法进行更改,.

fmodel-rust:使用Rust实现函数式领域建模的开源示例

147 1 3K
当您开发信息系统来自动化业务活动时,您就是在对业务进行建模。您设计的抽象、实现的行为以及构建的 UI 交互都反映了业务 - 它们共同构成了域的模型。这个项目可以用作库包,或作为灵感,或两者兼而有之。它.

EDA中事件内容的设计权衡

370

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

用Java的Rama构建Mastodon降低100倍成本

668 1 12K

Rama 完全使用 Java API 进行编程,与使用 Ruby on Rails 构建的官方 Mastodon 实现相比,我们的实现大大减少了代码。Rama 负责处理所有数据处理、数据索引和大部分产.

Saga模式实现事件驱动系统集成

378 5K

在当今快节奏、互联的世界中,企业和开发人员不断寻求创新方法来构建高效且可扩展的应用程序。事件驱动架构 (EDA) 是最引人注目且势头强劲的架构范例之一。事件驱动的应用程序旨在响应实时事件,并已成为构建.

10个Postgres使用高级技巧

686 8K

PostgreSQL不仅仅是另一个数据库,它是一个包含可以改变您处理数据方式的功能的系统。1、元组是行的物理版本PostgreSQL的基础之一是元组(tuple)的概念,这让许多新手感到惊讶。简单地说.

实现事件驱动架构EDA面临的缺点

342

以下是对构建 EDA 应用程序时应考虑的挑战性问题:1.缺乏幂等处理消费者可能会对事件进行多次处理(或者您可能需要重放事件、故障等)。使用幂等性 可以帮助您构建没有副作用的解决方案。2.误将命令与事件.

选择前端框架最重要依据:状态变更检测

632 12K

状态更改检测,也就是检测应用程序对状态值的改变,这样才会相应地更新 UI。(MVC模式 中模型Model的改变会更新View界面UI,又类似后端的ORM,对象状态更改通过ORM框架自动变更相应数据表值.

Uber如何实现互联网大规模金融交易的自动化审计?

443 4K

假设乘客于 2022 年 1 月从家到机场,费用为 60 美元。6-7 个月后,乘客再次从家到机场,但现在需支付 50 美元。在这两次行程中,乘客都使用了具有相同出发地和目的地的 UberX。现在,用.

数据序列化工具比较:Avro vs Protobuf

1285 11K

两种流行的数据序列化系统是Google 的 Protocol Buffers (Protobuf)和Apache 的 Avro。虽然 Protobuf 和 A​​vro 都有各自的优点和缺点,但开发人.

typeid:受 Stripe ID 启发的类型安全、K-sortable、全局唯一标识符

575

TypeIDs是UUIDv7的一个现代的、类型安全的扩展。TypeIDs被规范地编码为小写的字符串,由三部分组成: 一个类型前缀 一个下划线'_'分隔符 一个128位UUIDv7编码为base32的2.