小编Pra*_*yat的帖子

DDD/CQRS查询事件

我正在查看使用方法事件采购/ DDD/CQRS设计的应用程序中查询的帖子.

据我所知,事件是域对象状态的变化.对状态的更改将作为DB(任何sql/no sql)中的历史记录/事件进行维护.

如果用户想要查询以获取特定聚合根的当前状态,则将涉及获取事件的历史记录.

当用户将查询特定于业务的查询时,他/她将对当前状态感兴趣而不是事件历史.

CQRS中的查询或"Q"部分如何与事件采购一起使用?

考虑我有一个域对象"帐户"作为聚合根.账户AR将经历许多变化,即信用借记.活动商店将有信用卡和借记卡活动.

考虑用户需要获得帐户的当前余额,事件历史流将如何在这里设置?用户如何获取给定帐户的当前余额?

我无法理解,如何针对特定业务查询事件历史记录有用吗?

-Prakhyat MM

domain-driven-design cqrs event-sourcing akka-persistence

6
推荐指数
3
解决办法
1546
查看次数

iOS APNS:两个通知提供程序服务器是否可以具有相同的设备令牌

苹果文档提到,多个提供商通知服务器向 iOS 设备发送推送通知没有限制。

是否有可能,相同的设备令牌可以在部署在两个不同网络中的两个不同提供商服务器中使用,以便随时向同一个应用程序发送推送通知。

Apple APNS 是否允许 2 个不同的提供商服务器使用相同的设备密钥将通知从每个设备发送到一台设备中的同一应用程序?

push-notification apple-push-notifications ios

5
推荐指数
2
解决办法
4609
查看次数

分布式系统中 REST API 的幂等性和竞争条件

什么可能是实现幂等性并处理竞争条件的替代解决方案。

例如。考虑将客户添加到记录系统的请求。客户详细信息将以电子邮件 ID 作为关键属性。并假设有 API 来创建客户。

考虑一种情况,由于来自客户端的重复请求,在时间 T1,两个请求可能会登陆服务器以创建相同电子邮件 ID 的客户,例如“xyz@abc.com”。

请求 1,时间 T1,电子邮件 ID“xyz@abc.com” 请求 2,时间 T1,电子邮件 ID“xyz@abc.com”

我正在寻找分布式系统如何在 REST API 调用中处理幂等性和竞争条件的方法?我知道有不同的方法,例如,

  • 数据库约束
  • 分布式锁

DB Constraint on column email id,很容易解决这个问题。也可以选择分布式锁或使用 no-sql 方法在将记录存储之前检查缓存中的电子邮件 ID。

考虑到分布式特性,还有哪些其他可扩展的方法?

为什么要避免约束是,它对索引、性能和规模都有影响。

rest distributed-computing distributed-system race-condition idempotent

5
推荐指数
0
解决办法
428
查看次数