【发布时间】:2020-08-25 22:45:21
【问题描述】:
我目前正在尝试构建一个处理个人财务的应用程序。我正在为 Lagom 的做法而苦苦挣扎,因为我找不到任何使用 Lagom 构建的“真实”应用程序示例。我必须猜测什么是最佳实践,而且我总是害怕陷入陷阱。
我的情况如下:我有用户、帐户和交易。帐户属于用户,但可以在他们之间“共享”(使用某种授权系统,一个用户是管理员,另一个用户可以读取或编辑该帐户)。交易有一个可选的“借方”账户、一个可选的“贷方”账户和一个始终为正的金额。
我考虑的场景如下:
- 我认为交易属于账户,是账户实体的一部分,作为条目列表。在这种情况下,转账交易必须在另一个账户中有一个“姐妹”条目。这似乎很容易实现,但我担心:
- 实体(和快照)的潜在大小。如果我的帐户包含成千上万的交易会怎样?
- 多个帐户中的交易重复。
- 我认为事务有自己的服务。在那种情况下,我可以使用 Kafka 在记录交易时发布事件,以便 Account 实体可以“更新”它的余额。在这种情况下,在实体中具有“平衡”属性或为更新读取数据库的事务事件设置读取端事件侦听器是否有意义?
- 我可以在同一个服务中拥有两个持久实体,但在这种情况下,我在读取端遇到了困难。假设我有一个事务,我想插入“事务”表并更新“帐户”表。我是否应该有多个读取端处理器来监听不同的事件但写入同一个数据库?
你怎么看?
【问题讨论】:
标签: microservices event-sourcing lagom