Microservices 事件源整个系统都坏了

Microservices 事件源整个系统都坏了,microservices,cqrs,event-sourcing,Microservices,Cqrs,Event Sourcing,我正在学习使用CQRS、MassTransit和不同类型的读端存储的适当微服务体系结构。CQR中经常出现的一件事是事件来源。我知道这根本不是强制性的。然而,我想不出为什么在整个系统上使用它真的是一种反模式 将所有事件的存储作为真相的单一来源可以帮助您随时动态构建/重建读取存储 您未锁定到任何供应商(事件存储除外) 对我来说,问题更像是不从事件源开始(根据微服务的不同,仍然有单独的数据存储,例如:elasticsearch、mongodb等)和在需要时进行迁移/资源调配更容易还是相反,从事件源开始

我正在学习使用CQRS、MassTransit和不同类型的读端存储的适当微服务体系结构。CQR中经常出现的一件事是事件来源。我知道这根本不是强制性的。然而,我想不出为什么在整个系统上使用它真的是一种反模式

  • 将所有事件的存储作为真相的单一来源可以帮助您随时动态构建/重建读取存储
  • 您未锁定到任何供应商(事件存储除外)
  • 对我来说,问题更像是不从事件源开始(根据微服务的不同,仍然有单独的数据存储,例如:elasticsearch、mongodb等)和在需要时进行迁移/资源调配更容易还是相反,从事件源开始寻找一切,这样以后就不必处理迁移

    我想不出为什么在整个系统上使用它真的是一种反模式

    我同意——称之为“反模式”是言过其实

    我相信的拼写?今天,在整个系统上使用事件源并没有成本效益

    它可能是明天,因为我们有了更多的实践,设计这些系统的成本降低了,我们学会了从中获取更多的好处

    同时,您从事件源获取的时态查询有多大价值?在你的核心领域,在那里你可以获得竞争优势,他们可能是非常有价值的。在你只是对外界提供给你的信息进行簿记的地方?没有那么多——你可能从只关注“现在”的简单解决方案中获得了你所需要的一切

    我想不出为什么在整个系统上使用它真的是一种反模式

    我同意——称之为“反模式”是言过其实

    我相信的拼写?今天,在整个系统上使用事件源并没有成本效益

    它可能是明天,因为我们有了更多的实践,设计这些系统的成本降低了,我们学会了从中获取更多的好处

    同时,您从事件源获取的时态查询有多大价值?在你的核心领域,在那里你可以获得竞争优势,他们可能是非常有价值的。在你只是对外界提供给你的信息进行簿记的地方?没有那么多-您可能从只记录“现在”的简单解决方案中获得了所需的一切。

    我最近发表了一篇关于这个问题的文章。它解释了为什么事件源是一种持久性策略,不应该在全球范围内使用

    总结一下:事件源强制您为每个更改的数据发出一个事件。这会导致非常细粒度的事件。如果您使用事件源进行跨微服务通信,则会将这些事件暴露给外部世界

    最后,您公开了持久性层,这与在基于CRUD的持久性策略中公开(关系)数据库模式相当。

    我最近发表了一篇关于这个问题的文章。它解释了为什么事件源是一种持久性策略,不应该在全球范围内使用

    总结一下:事件源强制您为每个更改的数据发出一个事件。这会导致非常细粒度的事件。如果您使用事件源进行跨微服务通信,则会将这些事件暴露给外部世界


    最后,您公开了持久性层,这与在基于CRUD的持久性策略中公开(关系)数据库模式相当。

    我在这里可能太天真了。与其考虑未来,不如考虑在开始一个项目时做“正确”或在过程中改变它之间什么更容易。对我来说,如果将来。。。当开始一个项目的范围将是小的,我相信…有一个事件的历史,肯定是一个大的优势,事件采购。但另一个问题是,您不依赖于供应商或任何类型的存储,因为您可以从事件存储中调配任何存储。例如,如果你从dynamodb改为cosmosdb,你就没有那么多问题了……你只有电子商务平台的文档库,你需要graphdb?没问题,您可以使用事件存储设置它。我对单一真相来源的真正担忧是,这是一个单一的失败点,也是不可扩展的。我在这里可能太天真了。与其考虑未来,不如考虑在开始一个项目时做“正确”或在过程中改变它之间什么更容易。对我来说,如果将来。。。当开始一个项目的范围将是小的,我相信…有一个事件的历史,肯定是一个大的优势,事件采购。但另一个问题是,您不依赖于供应商或任何类型的存储,因为您可以从事件存储中调配任何存储。例如,如果你从dynamodb改为cosmosdb,你就没有那么多问题了……你只有电子商务平台的文档库,你需要graphdb?没问题,您可以使用事件存储设置它。我对单一真相来源的真正担忧是,这是一个单一的失败点,而且不可扩展。对于这样的辩论问题,DDD-CQRS-ES松弛是一个可以去的地方——这是一个微妙的事情,从不同角度的往返中受益,也就是说,不可能有官方的最佳实践。反模式格言是一条经验法则,80/20规则-事件源化您的核心域比其他任何事情都更划算。对于类似这样的辩论问题,DDD-CQRS-ES slack是一个好去处-这是一个细微差别的事情,它将受益于to和