问题标签 [commondomain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cqrs - J Oliver EventStore V2.0 CommonDomain 快照
什么是使用 EventStore 和 CommonDomain 时拍摄聚合快照的最佳实践(有没有更好的地方问,用户组,类似的东西)?
cqrs - 如何使用 JOliviers 的 CommonDomain 和 EventStore 获取聚合列表?
CommonDomain 中的存储库仅公开“GetById()”。那么,如果我的处理程序需要一个客户列表,例如,该怎么办?
cqrs - J Oliver EventStore/CommonDomain SagaBase
为什么 SagaBase 在 Jonathan Oliver 的 CommonDomain 库中是泛型的?
cqrs - CommonDomain/EventStore 接口获取
我想通过它实现的接口访问我的聚合根:
我需要告诉 CommonDomain 或 EventStore 什么来完成此操作?我相信我的 IConstructAggregates 接收到存储事件的聚合的实现类型。我是否需要保留自己的 ID 地图。
例如,假设我有这些 agg 根:
我已经保存了一个具有 'idFromAggRoot1' 的 aggregate1 实例。现在我想这样获取:
既然 IInterface1 有两个实现者,我怎么知道以后应该创建什么?聚合根1?聚合根2?接口1?Activator 会在这里轰炸,所以我知道我需要实现 IConstructAggregates 但想知道是否还有其他描述符可以告诉我原始提交 agg 根类型是什么。
cqrs - NCQRS 与 JOliver EventStore
有人评估过 NCQRS 和 JOliver 的 EventStore 吗?两者之间是否有显着优势,或者它们是否针对不同的受众?
我所看到的:
NCQRS 内置了对 NServiceBus 的支持。不确定受支持的 NSB 版本,但 NSB 的许可更改使这成为我项目的一个问题。不要以为我想永远被 NSB 2.1 困住。我可能会更多地关注 MassTransit 或 RSB。NCQRS 似乎也有相当多的“入门”帮助,对于像我这样的新手来说,这是值得赞赏的。
EventStore 似乎具有总线机制的挂钩,但没有内置实现(可能是错误的)。EventStore 似乎在 3.0 版本中有相当多的近期活动,但除了一些简短的代码示例和我发现的播客之外,似乎没有太多帮助,尤其是对初学者来说,除了筛选堆栈溢出或组。
如果有现有的比较,请指出我的方向。如果我上面的假设不正确,请纠正我。
cqrs - 在 JO 的 CommonDomain 中调度 AR 版本及其事件
我正在寻找将我的聚合的当前版本传达给读取模型的正确方法。目前我看到的唯一可能性是执行以下操作:
我不喜欢它,因为我认为 Aggregate 应该自动将 AR 版本分派给所有读取端事件处理程序。
我还有其他方法可以做到这一点吗?
transactions - Howto:使用单个事务来跨越多个聚合的更新
在我们的应用程序中,我们使用 Jonathan Oliver 的 EventStore 和 CommonDomain。我们用来存储事件的数据库是 SQL Server 或 Oracle。
对于特定的用例,我们需要通过一个命令更新多个聚合。我意识到(在 CQRS 中)理想情况下,一个命令应该只更新一个聚合,但在我们的例子中,一次更新多个实例是一项特定要求。
有没有一种简单的方法(不使用两阶段提交)来使这个操作原子化,如果是的话,那怎么可能?
编辑:这个问题特定于 EventStore 框架的使用(也可能是 CommonDomain 框架的存储库)。这不是关于事务处理或工作单元模式的一般问题(我很清楚)
cqrs - CommonDomain/EventStore/CQRS:commondomain 的测试项目在哪里?
我已经从 GitHub 下载了 CommonDomain,我可以看到一个目录
其中包含文件“When_an_aggregate_is_persisted.cs”,但没有使用它的项目。基类“in_the_event_store”似乎也不见了。还有对 FakeBus、IDomainEvent、SynchronousDispatcher 等的引用。
nservicebus - 在 EventStore 中处理并发异常的正确方法是什么?
使用 JOliver EventStore 3.0 并从 NServiceBus 接收命令,处理并发异常的正确方法是什么?如果我有多个工作线程,这可能是一种常见的情况。
选项1
选项 2
让它返回到 NServiceBus 并使用配置中的 MsMqTransportConfig.MaxRetries 选项重试。
选项 3
我没有想到的东西?
unit-testing - CommonDomain - 如何对聚合根进行单元测试
我有一个使用 Jonathan Oliver 的CommonDomain和EventStore的小系统。
如何对聚合根进行单元测试以验证是否引发了正确的事件?
考虑以下聚合根:
我想写一个以下测试:
我可以使用内存持久性和同步调度程序设置整个 EventStore,连接模拟事件处理程序并存储任何已发布的事件以进行验证,但这似乎有点矫枉过正。
CommonDomain中有一个接口IRouteEvents
。看起来我可以模拟它以直接从中获取事件,AggregateBase
但我实际上如何将它传递给我的Subscriber
班级?我不想用与测试相关的代码“污染”我的领域。