我刚刚开始使用/理解事件存储 https://geteventstore.com/或此处可能已知的 get-event-store。
我已经阅读了有关客户、预测和订阅的文档,并准备开始在一些内部项目中使用。
我无法完全克服的一件事是 - 是否有一个指南/一组建议来描述事件元数据和数据之间的差异?我知道概念上的差异;事件数据是该领域的“核心”,是用于描述的元数据,但它正变得相当哲学化。
我想知道是否有关于实施(查询等)的硬性规则。
非常感谢任何指导!
无耻地复制(和解释)来自西蒙·库莱克 https://stackoverflow.com/users/700606/scooletz的博文“使用重要的元数据丰富您的活动 https://blog.scooletz.com/2015/08/11/enriching-your-events-with-important-metadata/“(强调我的):
但是哪些信息对于存储在元数据中是有用的,哪些信息值得存储,尽管事实上它没有被捕获
模型的创建?
1、审核数据
-
who?– 只需存储操作调用者的用户 ID
-
when?– 操作和事件的时间戳
-
why?– 演员的序列化意图/行动
2. 事件版本控制
事件溯源处理操作的效果。一种行为
在状态上执行会导致根据当前状态执行操作
执行。等待。目前的实施情况?是的
聚合的实现可能会改变,因为
修复错误或引入新功能。如果版本(例如提交 ID(用于装订线的 SHA1)或语义版本)也可以与事件一起存储,那不是很好吗?假设您发布了
损坏的版本,并且您的企业在修复错误之前已售出 100 张门票。
如果能够知道哪些事件是根据以下内容创建的,那就太好了
破碎的实施。有了这些知识,您就可以轻松弥补
由损坏的实现执行的事务。
3. 记录实施细节
引入金丝雀版本、功能切换和
对用户进行 A/B 测试。具有自动化部署和少量代码
增强所有提到的方法都是可行的
项目板。如果您考虑切换或不同的实现
在同一时刻共存,仅存储版本可能是
不够。如何添加应用了哪些功能的信息
为了行动?只需创建一组简单的启用功能或地图
功能状态并将其添加到事件中。有了这个和
命令,很容易重复该过程。此外,很容易
A/B 实验的结果。只需运行 A 事件扫描
启用另一个用于 B 的。
4. 2.和3的优化组合。
如果您认为这太多了,请创建一组查找
版本 x 功能。它不是那么大,并且可以在许多地方重复
用户,因此您可以轻松优化将集合存储在其他地方,在
一个参考键。您可以序列化此映射并计算 SHA1,将
映射中的值(表格也可以)并使用标识符
将它们放入事件中。有很多选项可以转移负载
要么到查询(查找),要么到存储(将所有内容存储为
命名元数据)。
加起来
如果您创建事件溯源架构,请考虑添加
时间维度(版本)和一些配置
元数据。一旦你掌握了它,就更容易推理出
事件来源并引入补偿等工具。
不存在数据太多这样的事情,不是吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)