• 每日一博 - CRUD system VS Event sourcing design


    在这里插入图片描述


    概念

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

    1. CRUD 系统

      • CRUD 代表 Create(创建)Read(读取)Update(更新)Delete(删除)。这种系统的设计侧重于对数据的直接操作。
      • 数据中心:CRUD 系统通常使用传统的关系型数据库,数据存储和管理方面比较直接。
      • 状态管理:CRUD 系统通过直接更改数据记录的状态来实现状态管理。每个操作都会直接影响数据的当前状态。
      • 适用场景:适用于需要实时状态管理、数据操作相对简单、需要强一致性的应用程序,如电子商务平台、博客网站、社交媒体应用等。
    2. 事件溯源设计

      • 事件溯源 是一种架构模式,它将应用程序的状态表示为一系列不可变事件的序列。每个事件都描述了在应用程序中发生的状态变化。
      • 数据中心:事件溯源通常使用事件存储来记录应用程序中的每个事件。这些事件可以存储在分布式日志中。
      • 状态管理:应用程序状态是通过重新应用事件序列来构建的,而不是直接更改数据记录的状态。状态是通过将事件应用于当前状态而演变出来的。
      • 适用场景:适用于需要灵活性和可伸缩性的应用程序,需要审计、跟踪和历史记录状态变化的应用程序,如金融系统、物流管理、医疗记录、实时分析等。

    Arch Overview

    在这里插入图片描述

    小结

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

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

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

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

    在这里插入图片描述

  • 相关阅读:
    Linux 网络协议栈收消息过程-Ring Buffer
    电子作业票系统:消除安全管理漏洞,科技赋能企业业务洞察
    【动手学深度学习】--语言模型
    Java进阶知识点总结
    Flutter学习4-基本UI组件
    天然橡胶行业洞察:预计2028年将达到306亿美元
    六石管理学:水平不高,照抄就好
    论文阅读 Dynamic Network Embedding by Modeling Triadic Closure Process
    极智AI | 昇腾 CANN ATC 模型转换
    Java8新特性
  • 原文地址:https://blog.csdn.net/yangshangwei/article/details/132815395