这是我的用例:
case class Organization(id: String = UUID.randomUUID().toString, userId: String)
case class OrganizationState(organization: Option[Organization])
case CreateOrganization extends OrganizationCommand
case OrganizationCreated extends OrganizationEvent
class OrganizationEntity extends PersistentEntity[OrganizationCommand, OrganizationEvent, OrganizationState]
POST /organizations?userId=1 <= creates an organization associated with user 1
GET /organizations?userId=1 <= retrieves all organizations associated with user 1
如何实施我的服务以确保一致性?
我尝试使用CassandraReadSide
维护一个表userId与organizationId的映射,但这个表最终是一致的。
我是否需要使用userId作为entityId创建另一个实体?
在fun-cqrs中,Projection.onEvent允许知道投影何时处理事件。
请参阅https://groups.google.com/forum/#!topic/lagom-framework/JG71x5W5h7I
答案 0 :(得分:0)
你必须问自己的问题是为什么POST和GET必须立即保持一致?有一些方法可以实现这一点,但你所做的权衡通常会影响性能,可能与拉格尔不一致。