每日一博 - CRUD system VS Event sourcing design

简介: 每日一博 - CRUD system VS Event sourcing design

概念



CRUD 系统和事件溯源设计是两种不同的软件架构方法,用于处理数据和应用程序的状态。以下是它们的区别以及各自适用的场景:


  1. CRUD 系统


   CRUD 代表 Create(创建)、Read(读取)、Update(更新) 和 Delete(删除)。这种系统的设计侧重于对数据的直接操作。


   数据中心:CRUD 系统通常使用传统的关系型数据库,数据存储和管理方面比较直接。

   状态管理:CRUD 系统通过直接更改数据记录的状态来实现状态管理。每个操作都会直接影响数据的当前状态。

   适用场景:适用于需要实时状态管理、数据操作相对简单、需要强一致性的应用程序,如电子商务平台、博客网站、社交媒体应用等。


2.事件溯源设计:


   事件溯源 是一种架构模式,它将应用程序的状态表示为一系列不可变事件的序列。每个事件都描述了在应用程序中发生的状态变化。


   数据中心:事件溯源通常使用事件存储来记录应用程序中的每个事件。这些事件可以存储在分布式日志中。

   状态管理:应用程序状态是通过重新应用事件序列来构建的,而不是直接更改数据记录的状态。状态是通过将事件应用于当前状态而演变出来的。


   适用场景:适用于需要灵活性和可伸缩性的应用程序,需要审计、跟踪和历史记录状态变化的应用程序,如金融系统、物流管理、医疗记录、实时分析等。



Arch Overview


小结


在选择使用哪种设计取决于项目需求和性质。


   如果您需要处理实时数据操作,并强调当前状态的强一致性,那么CRUD系统可能更适合。

   如果您需要跟踪和审计状态的历史变化,或者希望实现高度可伸缩的事件驱动应用程序,那么事件溯源设计可能更适合。


通常,复杂的应用程序可能会结合两者,根据不同的数据和业务需求使用不同的架构模式。

相关文章
|
SQL Prometheus 监控
数据库连接池选型 Druid vs HikariCP
springboot 现在官方默认的数据库连接池是 HikariCP,HikariCP的性能从测试的数据上来看也是最高的。
数据库连接池选型 Druid vs HikariCP
|
3月前
|
监控 安全 数据库
Binlog vs. Redo Log:数据库日志的较劲【高级】
Binlog vs. Redo Log:数据库日志的较劲【高级】
82 0
|
3月前
|
存储 缓存 关系型数据库
Binlog vs. Redo Log:数据库日志的较劲【基础】
Binlog vs. Redo Log:数据库日志的较劲【基础】
189 0
|
4月前
|
关系型数据库 MySQL 数据处理
MySQL vs. PostgreSQL:选择适合你的开源数据库
在当今信息时代,开源数据库成为许多企业和开发者的首选。本文将比较两个主流的开源数据库——MySQL和PostgreSQL,分析它们的特点、优势和适用场景,以帮助读者做出明智的选择。
|
7月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
52 0
|
10月前
|
存储 数据采集 NoSQL
爬虫数据存储技术比较:数据库 vs. 文件 vs. NoSQL
爬虫数据存储技术比较:数据库 vs. 文件 vs. NoSQL
|
12月前
|
关系型数据库 MySQL 编译器
MySQL数据库————数据库与vs的连接(一)
MySQL数据库————数据库与vs的连接(一)
246 0
|
数据库 C++
VS链接数据库方法
VS链接数据库方法
VS链接数据库方法
|
数据库 C++
VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
274 0
|
监控 Cloud Native 关系型数据库
云原生 - 自建数据库 VS 云数据库,到底怎么选?
云原生 - 自建数据库 VS 云数据库,到底怎么选?
449 0
云原生 - 自建数据库 VS 云数据库,到底怎么选?