EventStore 基础知识 - 事件元数据/元数据和事件数据之间有什么区别?

2024-04-02

我刚刚开始使用/理解事件存储 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(使用前将#替换为@)

EventStore 基础知识 - 事件元数据/元数据和事件数据之间有什么区别? 的相关文章

  • 如何在Python中获取视频文件的方向

    我想将视频文件的帧加载到 numpy 数组中 我希望帧正确直立 这意味着我需要读取视频文件中的方向元数据 并相应地旋转加载的帧 我有一种加载帧的方法 opencv 的 python 绑定 所以我需要的是一种读取视频文件的方向元数据的方法 我
  • nameof 运算符有什么方法可以访问方法参数(在同一方法之外)?

    采用以下类和方法 public class Foo public Foo Create string bar return new Foo bar 所以得到 创建 是显而易见的 nameof Foo Create 除了在运行时使用反射读取参
  • 将简单元数据附加到 MySQL 数据库

    有没有办法将一段元数据附加到 MySQL 数据库 我正在尝试编写代码 以便在代码升级需要时自动更新数据库架构 这需要存储单个整数值 模式版本 我当然可以为其创建一个完整的表格 但这对于一个简单的数字来说似乎有点过分了 您可以使用表注释来存储
  • 如何查询Oracle目录的权限?

    我在 all directories 中有一个目录 但我需要找出与它关联的权限 即已授予它什么权限 这将为您提供在目录上授予的角色 用户和权限 SELECT FROM all tab privs WHERE table name your
  • 如何使用 Python 将专辑封面嵌入到 MP3 中?

    我一直在使用 mutagen 来读取和写入 MP3 标签 但我希望能够将专辑封面直接嵌入到文件中 以下是如何使用 mutagen 将 example png 作为专辑封面添加到 example mp3 中 from mutagen mp3
  • C# 中 XML 映射到没有属性的对象

    是否有 C 库允许将 C 对象映射到没有属性的 XML 我有几个数据源 它们都包含具有相同逻辑结构但不同架构的 XML 数据 例如 在一个 XML 中可能有一个名为 邮政编码 的字段 在另一个 XML 中 此数据将位于名为 邮政编码 的属性
  • 如何使用 GStreamer 标记或添加元数据到视频文件?

    我想使用 GStreamer 将元数据添加到 MP4 视频文件 录制文件时如何进行 当文件已经录制时怎么办 是否可以使用 GStreamer 检查这些修改 例如 使用 FFmpeg 我可以使用以下命令行向视频添加标题 ffmpeg i in
  • 如何在上传之前在浏览器中删除图像元数据(javascript)

    我正在将图像上传到 Node js 服务器 并将它们发送到 AWS S3 以在我的网站上使用 在 iOS 设备上拍摄的图像有时会在浏览器中显示为横向 我已经发现这是由于 iOS 附加到每个图像的一些元数据造成的 其中包括捕获图像时手机的方向
  • 将 8BIM 配置文件元数据添加到 tiff 图像文件

    我正在开发一个程序 该程序需要 8BIM 配置文件信息存在于 tiff 文件中才能继续处理 在 Adob e Photoshop 中打开并保存示例 tiff 文件 不包含 8BIM 配置文件信息 时 会获取此元数据信息 我不知道如何解决这个
  • Django:按元组的第一个值排序

    我有一个 7 元组 POSSIBILITIES 1 Something 2 Something else 现在我有一个IntegerField with choices在具有上面列出的可能性的模型中 class Something mode
  • 哪些文件系统支持 Java UserDefinedFileAttributeView?

    我需要用文件系统中的文件存储自定义数据 每个文件大约 50 个字节 我没有任何其他存储来保存数据 并且无法为此创建额外的文件 这些是我的要求我无法改变它 我发现这可以使用 UserDefinedFileAttributeView 类来完成
  • EventSourced Saga 实施

    我已经编写了一个事件源聚合 现在实现了一个事件源传奇 我注意到两者是相似的 并创建了一个事件源对象作为两者派生的基类 我在这里看过一个演示http blog jonathanoliver com cqrs sagas with event
  • Sqlite:向表和列添加注释描述?

    在 MySQL Workbench 中 您可以添加COMMENT到 MySQL 数据库中的表和列 Sqlite是否支持向表和列添加注释 我认为不会 这 SQLite 理解的 SQL http www sqlite org lang html
  • R函数返回包的许可证?

    我想返回 R 包的描述文件中声明的包许可证 理想情况下我宁愿拥有 CRAN 自动添加到它识别的所有通用许可证中的 URL 我意识到我可以获得 R 本身分发的许可证 license 令人惊讶的是 这不适用于包裹 例如许可证 包名 此数据也不是
  • 将 SPSS 元数据变量标签、值标签、数据类型等导出到自定义文本文件

    我们有一个很大的 SPSS 文件 大小为 5MB 包含大约 1400 个变量 我们正在将所有内容迁移到数据库 为了配置表格和表单等 我们需要 SPSS 文件中的元数据 但采用特定的自定义格式 所以如果变量视图是这样的 Name Label
  • 将带有元数据的图像写入 MemoryStream 时,JpegBitmapEncoder.Save() 抛出异常

    我正在尝试在 JPG 图像上设置没有元数据的元数据 在这种情况下 您不能使用就地编写器 InPlaceBitmapMetadataWriter 因为图像中没有元数据的位置 如果我使用 FileStream 作为输出 一切正常 但如果我尝试使
  • 如何获取给定字体文件的字体系列的名称?

    我有一组文件名不可预测的字体文件 因此我无法从文件名中推断出真正的 字体系列 名称 因此 我需要读取字体元数据以提取真正的 字体系列 名称 以便渲染此字体文件 我使用的是 C NET 4 0 WinForms 我见过这个功能GetFontI
  • 设置非 Office 文件的 Windows 文件属性

    我想在 NET 代码中设置文件的属性 我尝试过使用 DSOFile v2 1 如下所示 var properties new OleDocumentProperties try properties Open filePath proper
  • 如何获取 Angular 2 中当前模块的元数据?

    我想获取当前的元数据NgModule为了得到列表declarations and providers为了填充动态模块 我创建了一个在模态中显示组件的模块 那怎么办呢 您可以使用以下方式访问声明reflect metadata https g
  • 如何以编程方式获取查找器中的“获取信息”窗格(Objective-c)?

    我们右键单击一个文件夹或文件 然后我们可以选择 获取信息 选项来显示一些信息 我想知道我们是否可以通过 Objective c 来做到这一点 None

随机推荐

  • 循环遍历 XML 文档

    我的方法 if File Exists C config xml System Xml XmlDocument xd new System Xml XmlDocument xd Load C config xml System Xml Xm
  • 在 C# 中使用 PrintSpoolerAPI 函数 SetForm()

    我正在开发一个 Windows 窗体应用程序 我想在其中打印自定义文档 该自定义文档具有自定义尺寸 我必须使用 C 代码设置默认打印页面尺寸 我做了一些谷歌搜索并发现了PrintSpoolerAPI 我找到的代码将使用添加自定义表单 页面A
  • 使用空值上的连接级别使用 pl/sql 分割字符串

    我在 Oracle pl sql 中使用以下代码 版本 Oracle 数据库 11g 版本 11 2 0 1 0 select regexp substr A B C 1 level output from dual connect by
  • 仅为匿名用户缓存 ASP.NET 页面

    有没有一种简单的方法来仅为匿名用户缓存 ASP NET 整个页面 使用表单身份验证 上下文 我正在制作一个网站 其中向匿名用户显示的页面大多是完全静态的 但向登录用户显示的相同页面则不是 当然 我可以通过后面的代码手动完成此操作 但我认为可
  • LinkedHashMap 排序

    正如 LinkedHashMap 的 javadoc 中所指定的 如果将键重新插入到映射中 插入顺序不会受到影响 但在运行下面的程序时 我注意到在更改访问顺序时再次插入相同的键 Map
  • 开源和基于 Web 的 html5 文档查看器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无论屏幕分辨率如何,如何使 javascript css 弹出 div 居中?

    我有以下代码 它在禁用背景的同时打开一个新的弹出窗口 问题是我必须将其定位 使其距顶部 100px 已经通过 CSS dialog 获得 并且位于屏幕中央 无论用户的分辨率是多少
  • 如何只允许某些值作为Java方法的参数?

    我想编写一个仅采用某些参数值的方法 例如 f e 在里面ToastAndroid 中的类 你只能使用Toast LENGTH SHORT or Toast LENGTH LONG作为方法的持续时间makeText Context conte
  • 使用 NSLayoutManager 计算每个字形的帧

    在这个线程上 Core Text 在 iOS 中计算字母框架 https stackoverflow com questions 21443625 core text calculate letter frame in ios 他们能够使用
  • DebugDiag 和 MVC4 没有提供可用的堆栈跟踪

    我刚刚在我们的生产服务器上遇到了高 CPU 问题 并决定在本地练习调试此类情况 以便将来为此做好准备 但是当我尝试调试本地 MVC4 站点时 我没有获得与教程相同的信息堆栈跟踪做 问题 有谁知道是否可以获得更多信息的堆栈跟踪 我希望在某个地
  • MKAnnotation - 地图图钉标注在其他地图图钉后面弹出

    我的地图图钉可以非常密集地填充 因此当选择一个图钉时 标注会弹出 但大部分被所有其他地图图钉遮挡 我可以将地图图钉放在前面 它有一个代表选定的地图图钉 不是点击标注 选择引脚 有什么解决方法的建议吗 如果您使用自定义注释视图 您可以为选定的
  • 具有可变列数的 Infragistics XamDataGrid

    我需要能够支持 XamDataGrid 它在设计时不会有一定数量的列 例如 应用程序将运行 从服务器获取一些数据并创建一些对象 根据服务器的响应 每次运行应用程序时可能会有不同数量的对象 这是我的意思的一个例子 假设我调用某个服务并返回带有
  • 添加依赖后无法合并dex

    我收到错误 错误 任务 app transformDexArchiveWithExternalLibsDexMergerForPaidFreeDebug 执行失败 java lang RuntimeException com android
  • 仅在全日历中允许后台事件发生 eventOverlap

    有没有办法避免事件重叠 就像 fullcalendar 配置中的 eventOverlap false 一样 但另一方面允许背景事件重叠 我想将一些事件作为背景事件渲染到我的日历中 就像信息一样 其他日历中已经有一些事件 但允许我在顶部创建
  • 使用 Rally API 通过迭代获取用户故事

    我不知道如何在 Rally 中获取一个用户故事的所有字段 现在 我需要获取最后 5 次迭代 并计算每次迭代的完成点 我设法通过指定来获取迭代type iteration 但不知道如何获取这些迭代的用户故事 以及如何指定仅完成 我应该和Tas
  • Node.js 作为服务,exec 不起作用

    我正在使用 nssm 将 Node js 项目作为服务运行 当用户单击我的 Nodejs 网站上的按钮时 它应该运行require child process exec cmd c batfile bat function res send
  • CakePHP 分页 - 如何从 url 中删除“page:”以获得更好的 seo/更干净的 URL

    当我使用 CakePHP Paging 时 我得到一个像这样的 url http example com php page 2 我必须在控制器 视图和routes php中更改什么才能创建这样的工作网址 http example com p
  • 修改实体框架中实体的属性会导致验证错误

    我试图简单地加载一个实体 修改一个属性 然后将其保存回数据库 var db new NewsletterContext var newsletter db Newsletters Find x gt x ID newsletterID ne
  • AFNetworking POST 请求中的 JSON 数据混乱

    我正在使用 AFNetworking for Objective C 发送请求 当我 NSLog 参数时 这是我发送的对象 games id 50 p 8 ts 0 tt tw 0 ys 35150 yt 156424496 37 4166
  • EventStore 基础知识 - 事件元数据/元数据和事件数据之间有什么区别?

    我刚刚开始使用 理解事件存储 https geteventstore com 或此处可能已知的 get event store 我已经阅读了有关客户 预测和订阅的文档 并准备开始在一些内部项目中使用 我无法完全克服的一件事是 是否有一个指南