gpt4 book ai didi

amazon-web-services - 从 AWS Eventbridge 存档中读取事件数据

转载 作者:行者123 更新时间:2023-12-05 05:49:54 26 4
gpt4 key购买 nike

我正在为我们的事件采购解决方案寻找选项。我收到了使用 Eventbridge Archive 的建议,因为我们已经在使用 AWS Eventbridge。

关于存档功能,我发现它可以存储我们发送到事件总线的所有事件,并可以稍后基于过滤器重播它们。

问题是我无法在不重放事件的情况下从这个存档中读取数据。

有谁知道是否有允许我这样做的 API?

我在 Google 上能找到的所有内容都是关于创建、存档和重放的,但与从存档中存储的事件中读取数据无关。

我找到了另一个 question但它没有任何答案。

最佳答案

(免责声明:此答案仅通过快速浏览 Eventbridge 文档得出)

事件溯源是一个有点过载的术语:它被用来表示从基于交换事件构建的架构到使用持久化事件作为真实来源的一切事物。

在该术语的后一种用法中(可能被称为“going full event sourcing”),严格来说,所有读取都是事件流的重放,存在多个事件流并且同一事件经常被写入多个事件流(例如,“购物车已结帐”事件很可能会写入该特定购物车的事件流以及仅包含“购物车已结帐”事件的事件流)。

EventBridge 和 EventBridge Archive 似乎足以“进行完整的事件溯源”:这些事件流中的每一个都成为事件总线。即时创建新总线可能不符合人体工程学,并且将同一事件发布到多个流的机制可能很复杂(例如,服务获取基本事件并不断将它们转换到其他流),假设你有更少的超过 100 个实体(因为 AWS 账户限制为 100 个事件总线)。如果您有超过 100 个实体,则 EventBridge 不适合事件溯源。

也就是说,在事件源系统中,几乎普遍存在一些不能很好地映射到重播流的读取功能(例如,对事件的临时查询/聚合)。这就是 Command Query Responsibility Segregation 的用武之地:采用 CQRS 就可以了

  • 在应用程序中有多个数据模型
  • 让工作负载使用最适合该工作负载的数据模型

应用程序的命令处理/写入端通常受益于事件溯源(特别是如果有基础设施来帮助实现并发控制/缓存/维护单写入器的某种组合)。然后,您将事件流转换到其他数据模型(例如数据库或搜索系统或警报基础设施)中,这些模型可以针对将针对它们执行的查询进行调整。

因此,您的问题或许可以更好地表达为“我如何在事件源系统中执行 CQRS”,值得庆幸的是,有一个完善的技术体系可以解决这个问题。在您的情况下,将(至少部分)流中的所有事件发送到将它们写入数据库的 Lambda 可能是支持 CQRS 的合理方式。

关于amazon-web-services - 从 AWS Eventbridge 存档中读取事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70599101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com