选择NoSQL数据库在CQRS设计的应用程序中存储事件

尤恩·特里莫罗

我正在寻找有关如何选择NoSQL数据库引擎以将所有事件存储在CQRS设计的应用程序中的良好且最新的“决策帮助”说明。

我目前是NoSQL的所有事物的新手(但是正在学习):请明确表示,不要犹豫,以(几乎太多)精确的方式解释您的观点。这个帖子可能值得其他像我这样的新来者。

该数据库将:

  • 能够在前视图要求的每个更新中插入2到10行(在我的情况下,经常更新)。考虑每分钟数千次更新,它将如何扩展?

  • 至关重要的是,必须保持一致并确保故障安全,因为事件是应用程序真相的来源

  • 不需要实体之间的任何链接(就像RDBMS一样),除了用户ID / GUID(我不知道它是否很关键还是需要)外

  • 接收包含3到10个“列”的事件(序列ID,事件名称,日期时间,JSON /二进制编码的参数包,某些上下文信息..)。如果不将您的观点放在面向列的数据库类型中,那么如果它满足所有其他要求,则可能是面向文档的

  • 用作队列或从外部AMQP系统(例如RabbitMQ或ZeroMQ)发送/从外部AMQP系统读取(如果您也可以论证/解释,则该部分还无法工作),因为视图投影将基于事件

  • 需要某种通过序列ID的过滤,例如SELECT * FROM events WHERE sequence_id > last_sequence_id订户(或队列系统)能够从给定点进行同步

我听说过用于CQRS事件存储的HBase,但也许MongoDB合适吗?甚至甚至是Elasticsearch(不会押注那个)。我也对RDBMS保持一致性和可用性。.但是分区容忍部分呢?

确实我迷路了,我需要争论才能做出适当的选择。

查尔斯

https://geteventstore.com/是专门为事件流设计的数据库。

他们非常重视真理来源(您的事件)的一致性和可靠性,我自己使用它每秒读取/写入数千个事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django应用程序的数据库设计

使用“标签”的应用程序的数据库设计

牙医应用程序的数据库设计

学术测验应用程序的数据库设计

症状检查器应用程序的数据库设计

数据库设计问题...用于预订应用程序

数据库与应用程序安全性设计

如何为聊天应用程序中的民意测验设计数据库架构?

从android应用程序获取数据并将其存储在使用php的sql数据库中

汽车数据库Web和桌面应用程序的数据库设计

从Django应用程序中从数据库中选择数据

我的Cordova应用程序的最佳数据库选择

Django / Python应用程序的数据库引擎选择

如何为Android应用程序选择数据库?

在Flutter应用程序中从Firebase实时数据库事件获取父节点

postgresql-Java-发生数据库中的某些事件时唤醒应用程序

如何在 Django 应用程序中查看用户选择的数据库中的项目?

使用位掩码将应用程序启用的功能存储到数据库中

在C ++应用程序中存储,跟踪和更新SQLite数据库版本

如何在同一SQL数据库中存储多个应用程序的用户?

管理数据库中存储的php应用程序设置

在Node.Js / Express应用程序中存储数据库配置的最佳方法

在数据库中存储格式信息以在 Windows 窗体应用程序中使用

从iOS应用程序将图像存储到MYSQL数据库中

ASP.NET在应用程序数据库中存储会话状态

使用实时数据库优化聊天应用程序中的存储和带宽使用

如何使用 Blazor 应用程序在数据库中存储多个图像?

将从 API 接收的对象存储在应用程序的数据库中还是始终从 API 获取?

如何从WCF应用程序中选择*,托管在appharbor中的数据库