我目前正在尝试构建一个处理个人理财的应用程序。我在Lagom的工作方式中苦苦挣扎,因为我找不到用Lagom构建的“真实”应用程序的任何示例。我不得不猜测什么是最佳实践,并且我一直害怕陷入陷阱。
我的情况是:我有用户,帐户和交易。帐户属于用户,但可以在用户之间“共享”(使用某种授权系统,一个用户为admin,其他用户可以读取或编辑该帐户)。交易有一个可选的“借方”帐户,一个可选的“贷方”帐户以及一个始终为正的金额。
我正在考虑的场景如下:
你怎么看?
我认为您不应该拥有其他实体“交易”,因为它与帐户实体紧密相关,实际上,帐户的交易不超过该帐户的事件日志。因此,我建议在余额中保留唯一的交易ID和其他帐户在转移交易中的ID,并让读取处理器监听帐户更改的事件,以将其存储在读取模型中。
执行此操作只是两个帐户之间的一条消息,导致余额修改,此余额以后将作为每个事件日志的一部分持久存在。这种方法看起来更自然,您不必管理与帐户实体紧密耦合的单独的聚合根。