首页 文章
  • 0 votes
     answers
     views

    lagom如何识别哪个事件是针对哪个实体的

    根据Lagom概念上的一个讨论,我在这里读到link 实体不会在任何地方持久存在 - 这就是事件源的重点,您只需存储事件,这些事件可以非常简单地实现,易于分发,并且具有非常高的性能,因为它只是一个追加操作 . 当需要加载实体时,将加载该实体的事件,并且您声明处理事件的事件处理程序然后处理每个事件以生成当前实体状态 . 我的问题是lagom如何识别哪个事件属于哪个实体 . 让我们举一个例子:我有...
  • 11 votes
     answers
     views

    使用akka-persistence的CQRS Event Sourcing实现

    我想使用akka-persistence事件采购功能,以便在我的新项目中实现CRQS事件采购理念 . 问题是,除了文档(http://doc.akka.io/docs/akka/snapshot/scala/persistence.html),我找不到任何好的示例或指南如何处理它 . 该文档在解释体系结构的所有构建块(如处理器,视图,通道)方面非常出色,但没有解释如何将它们组合在一起 . 所以问题...
  • 0 votes
     answers
     views

    将CQRS应用于信用卡收费(使用AKKA)

    鉴于我对CQRS有点困惑,我想进一步了解它是以下场景: 我有一个向用户的信用卡收费的演员 . 为此,请联系执行操作的银行外部服务,获取确认结果 . 我想知道如何将其应用于CQRS? 需要在此处写入的信息是特定用户已收取一定金额 . 因此生成的事件是Charged(UserID,Card,Amount) . 这样的事情 . 问题是,我特别使用AKKA看到的所有示例都只会在验证命令后生成事件,以便它保...
  • 0 votes
     answers
     views

    了解CQRS实施(可选择使用AKKA视角)

    我对CQRS很新 . 我通过AKKA学到了它 . 然而,AKKA提供了实施它的方法,它不是教你CQRS . 因此,人们最终可能会做出愚蠢的事情 . 我想澄清一些概念 . 假设我是一个带购物篮和库存的网站(我们还可以添加信用卡处理器) . 在akka术语中,我可能有一个代表购物篮的演员和库存的演员 . 在任何情况下,我在谈论演员与否并不是真正的关系 . 重要的是,我有独立的处理单元异步操作并通过消息...
  • 3 votes
     answers
     views

    在使用Akka进行事件采购时如何处理CQRS中的Q?

    与Event Sourcing结合使用时,有没有一种很好的方法来进行CQRS? 我想到的一种方法是在Command处理程序(持久化Actor)中执行此操作,只要将Command转换为事件并持久保存到事件日志(这些事件代表Write模型),我就会使用事件总线到感兴趣的订阅查询actor,以便他们可以更新他们的Query模型 . 我想的另一种方式(如果期刊支持它)是使用持久性查询(通过Akka Str...
  • 8 votes
     answers
     views

    Akka Persistence Query事件流和CQRS

    我正在尝试在ES-CQRS架构中实现读取端 . 假设我有一个像这样的持久性演员: object UserWrite { sealed trait UserEvent sealed trait State case object Uninitialized extends State case class User(username: String, password: Strin...
  • 1 votes
     answers
     views

    CQRS微服务:如何处理关系/验证?

    Scenario: 我有2个微服务(内部都使用CQRS事件采购) 微服务1管理联系人(=聚合根) 微服务2管理发票(=聚合根) 发票的收件人必须是有效的联系人 . CreateInvoiceCommand: { "content": "my invoice content", "recipient": "...
  • 57 votes
     answers
     views

    CQRS事件采购:验证UserName唯一性

    我们来看一个简单的“帐户注册”示例,这里是流程: 用户访问网站 单击"Register"按钮并填写表格,单击"Save"按钮 MVC控制器:通过从ReadModel读取来验证UserName的唯一性 RegisterCommand: Validate UserName uniqueness again (here is the questio...
  • 3 votes
     answers
     views

    CQRS和ElasticSearch - 使用ElasticSearch构建读取模型

    有没有人使用ElasticSearch在CQRS方法中构建读取模型?我有一些与此类解决方案相关的问题: 您在哪里存储域名活动?在JDBC数据库中?在ElasticSearch? 您是否通过处理域事件或使用ElasticSearch River功能的事件处理程序构建索引? 如何处理视图模型的完全重建 - 例如在视图损坏的情况下?您是否处理所有事件以重建视图?
  • 1 votes
     answers
     views

    命名的最佳实践在CQRS架构中读取模型表?

    我是CQRS的新手,并且像往常一样决定如何命名事物是学习过程中最难的部分之一 . 如果我们在CQRS应用程序的读取数据库中遵循每个视图的1个表的约定,那么我们应该如何为不同的视图命名表? 假设我们有许多不同的客户端正在使用读取模型,我们是否应该基于消耗数据的客户端和UI视图来命名表? 这里不关心我们将UI与读取模型数据库和用于执行查询的Web服务耦合在一起吗?或者,这是CQRS体系结构的目的,是将...
  • 1 votes
     answers
     views

    在使用CQRS体系结构的Windows Azure应用程序中,读写数据库的最佳选择是什么?

    使用CQRS体系结构在Windows Azure中构建应用程序,如果您正在寻求最大性能,那么读写数据库的可选存储解决方案是什么? 阅读:非规范化表 写:事件存储 目前Windows提供了多种解决方案,例如: Azure SQL数据库 Azure表存储 Hadoop
  • 0 votes
     answers
     views

    CQRS的EF读写模式

    我已经读过Dapper比EF一般要快得多,并且正在考虑使用Dapper作为查询端,EF考虑使用CQRS(lite)模式的应用程序写入端 . 但是,我也知道EF可以默认关闭跟踪功能 . 是否值得创建2个数据库上下文,一个用于在所有实体中启用AsNoTracking进行阅读,另一个用于在启用跟踪的情况下进行写入?这样,我可以在不使用其他库的情况下获得性能优势并增加额外的复杂性
  • 4 votes
     answers
     views

    在CQRS中从写入侧读取数据库中的数据

    Background : 解释CQRS的图表通常会明确区分读写路径和单向数据流,如本示例所示(来源:Demystified CQRS): Question : 我想澄清一下, 如果后端的Command执行需要数据库中的某些数据, "write side"应该有来自write database的读取功能吗? 或它应该完全依赖"read side"进行任...
  • 1 votes
     answers
     views

    CQRS:写入RDBMS,从NoSQL读取?

    我要将我的项目写入数据库,将对象更改通知到队列中,以便另一个服务读取消息并将更新的数据复制到一个或多个非规范化的数据库中 . 考虑到这一点,我发现如果"write"数据库也被非规范化,这将是不好的 .示例:假设有一个用户 Profiles ,其名称为大学用户已毕业 . 假设我将此信息存储在"write"数据库中,如下所示: { userId: 100, na...
  • 0 votes
     answers
     views

    如何处理CQRS中的外键读取端故障?

    在SQL数据模型中有表A和表B,表A具有表B的外键 . 现在,您希望将CRUD体系结构迁移到CQRS . 想象一下以下场景: 您收到一个命令,用于保留A的新条目 您写入追加日志并处理它以更新您的州 读取端拾取它并且无法插入数据库中 在这种情况下,您的写入方和读取方将永远不会达到一致性 . 您如何处理CQRS中的读取侧约束?是否应该在写入方面进行验证?
  • 0 votes
     answers
     views

    使用Elasticsearch和SignalR过滤和推送CQRS模式

    细节: 命令API处理为CQRS模式并将 Read Model 持久保存到Elasticsearch . Observer-side通过Web API注册过滤条件 . 如果满足过滤条件,则通过SignalR API将 Read Model 推送到观察者侧 . 关注: 过滤条件必须使用Elasticsearch Query DSL,而不是应用程序端逻辑,因为它们是灵活且复杂的 ....
  • 0 votes
     answers
     views

    CQRS(Lagom)elasticsearch read-side

    就耐用性而言,我是最可靠的,但我想用它来在读取端存储数据以获得最佳搜索效果 .如果我们在cassandra数据库中存储事件(写入端),这意味着数据永远不会丢失 . 我没有't really understand what is meant with '数据持久性' .如果我们在读取端使用ES,这是否意味着某些数据可能无法正确导入?这是否意味着有一天数据可能会随机丢失,或者有一天所有数据可能已经消失...
  • 1 votes
     answers
     views

    CQRS写数据库

    在我们公司,我们正在开发基于微服务的系统,我们应用CQRS模式 . 在CQRS中,我们将命令和查询分开,因此我们必须开发2个微服务 . 目前,我被分配到增强CQRS模式以将事件保存在单独的数据库中(事件源) . 我知道拥有一个单独的事件数据库非常重要,但我们真的需要一个单独的写数据库吗? Write数据库的实际用途是什么?
  • 3 votes
     answers
     views

    什么导致EventStore如此容易地抛出ConcurrencyException?

    使用JOliver EventStore 3.0,开始使用简单的样本 . 我有一个使用NServiceBus的简单发布/子CQRS实现 . 客户端在总线上发送命令,域服务器接收并处理命令并将事件存储到事件存储,然后由事件存储的调度程序在总线上发布 . 然后,读取模型服务器订阅这些事件以更新读取模型 . 没什么好看的,几乎是书本 . 它正在工作,但只是在简单的测试中,当事件存储到EventStore...
  • 4 votes
     answers
     views

    Jonathan Oliver的EventStore是否积极发展? [关闭]

    我正在开始一个将在Windows Azure上托管的新项目 . 我使用RavenDb作为后端,我想使用CQRS和事件采购 . 我阅读了Jonathan的EventStore的好评,它完全适合我的架构,因为它是一个薄层,可以使用RavenDb作为商店 . 现在,我注意到3.0版本(最新的官方版)已经有一年了,新的3.1还没有发布(分支中有一些活动) . 我想推荐3.1版本,因为它集成了CommonD...
  • 2 votes
     answers
     views

    EventStore:学习如何使用

    我正在尝试学习EventStore,我喜欢这个概念但是当我尝试在实践中应用时,我会陷入同样的困境 . 我们来看看代码: foreach (var k in stream.CommittedEvents) { //handling events } 两个问题: 当应用程序在某些维护后启动时,我们如何以安全的方式书签哪些事件开始读取?有使用的模式吗? 一旦事件全部被消耗,循环结束.....
  • 6 votes
     answers
     views

    CQRS,事件采购和扩展

    很明显,基于这些模式的系统很容易扩展 . 但我想问你,究竟是怎么回事?关于可伸缩性我几乎没有问题: 如何扩展聚合?如果我要创建 aggregate A 的多个实例,如何同步它们?如果其中一个实例处理该命令并创建一个事件,那么该事件应该传播到该agregate的每个实例? 不应该有一些业务逻辑存在要求的agregate实例?因此,如果我发出适用于 aggregate A (ORDERS) 的...
  • 91 votes
     answers
     views

    使用RDBMS作为事件源存储

    如果我使用RDBMS(例如SQL Server)来存储事件源数据,架构可能是什么样的? 我从抽象的意义上看到了一些变化,但没有具体的 . 例如,假设有一个“产品”实体,对该产品的更改可以采用以下形式:价格,成本和描述 . 我很困惑我是否: 有一个"ProductEvent"表,其中包含产品的所有字段,其中每个更改表示该表中的新记录,并在适当时加上"who, wha...
  • 0 votes
     answers
     views

    如何通过事件采购和CQRS处理预测错误?

    我想使用事件源和CQRS,所以我需要预测(我希望我使用正确的术语)来更新我的查询数据库 . 我该如何处理数据库错误? 例如,我的一个查询缓存数据库不可用,但我已经更新了其他数据库 . 因此,当它恢复业务时,不可用的数据库将不会与其他数据库紧密相连 . 它如何知道它必须运行例如来自事件存储的最后10个域事件?我想我必须存储有关数据库当前状态的信息,但是如果该数据库状态存储失败怎么办?任何想法,最佳实...
  • 9 votes
     answers
     views

    聚合应该是事件处理程序

    在研究了大量材料和示例之后,我目前正在开始第一次尝试DDD / CQRS / ES系统 . 1)我已经看到了事件源代码示例,其中Aggregates是事件处理程序,并且它们的每个事件的Handle方法都会改变对象实例上的状态(它们为将改变状态的事件实现IHandleEvent <EventType>接口) 2)我还看到了一些例子,其中Aggregates看起来就像是对域进行建模的普通经...
  • 3 votes
     answers
     views

    通过多个聚合重建来自域事件的查询

    我正在使用DDD / CQRS / ES方法,我有一些关于建模我的聚合和查询的问题 . 作为示例,请考虑以下情形: 用户可以创建WorkItem,更改其 Headers 并将其他用户与其关联 . WorkItem具有参与者(关联用户),参与者可以向WorkItem添加动作 . 参与者可以执行操作 . 我们假设用户已经创建,我只需要userIds . 我有以下WorkItem命令: Creat...
  • 4 votes
     answers
     views

    没有DDD的CQRS事件采购

    我正在构建一个非常以数据为中心的系统 . 我有大型的分层数据集,但没有业务规则 . 系统的输出来自对数据和一些报告进行的一些计算 . 我需要有一个完整的审计跟踪(出于监管原因),并能够从过去的任何一点对数据集运行计算 . 出于这些原因,我认为使用CQRS的事件源系统是可行的方法 . 我见过的所有例子都围绕创建聚合来做ES . 我遇到的问题是因为每个数据都是一个大的相关集合,我会有少量的大量聚合 ....
  • 23 votes
     answers
     views

    使用事件采购和CQRS有哪些缺点?

    事件来源和CQRS很棒,因为它让开发人员陷入了一个预先建模的数据库,开发人员必须在应用程序的生命周期内使用该数据库,除非有大数据迁移项目 . CQRS和ES还有其他好处,如扩展事件存储,审计日志等已经遍布互联网 . But what are the disadvantages ? 在研究和编写小型演示应用程序之后,我可以想到以下一些缺点 Complex: 有人说ES很复杂 . 但是我的查询语...
  • 4 votes
     answers
     views

    事件采购/ CQRS阅读模型 - 预测

    我在AWS Lambda上运行了一个基于微服务的应用程序 . 其中两个微服务,最关键的微服务,使用事件源/ cqrs . Background: (this is also for me to organize my thoughts) 我正在使用this library并在DynamoDB中存储事件并在AWS S3中进行投影 . 写入部分就像一个魅力:每个命令调用从DynamoDB加载聚合的当前...
  • 2 votes
     answers
     views

    CQRS(事件采购)读取多个聚合

    我有2个聚合,有一对多关系 . 例如,我有一个问题列表,我想将其中的一些添加到questonaires,其中一些是强制性的,必须添加到所有问卷中,其中一些不是,并且问卷的创建者选择它们 . 假设我正在使用事件采购和CQRS . 我创建问题列表,我想将问题添加到问卷中 . 通常我会这样做 questionaire.AssignQuestions(questions.Where(q => q.i...

热门问题