我使用Akka持久性构建CQRS驱动的系统作为辅助项目和学习练习。我正在寻找一些关于我如何建模的帮助。
简而言之,我有一场比赛。纯粹的游戏机制是一个FSM(我实际上使用PersistentFSM对此进行建模)并且我已经读取了这个持久化actor的视图,前端客户端API查询该视图以确定在客户端呈现什么。这很有效。
游戏是基于单词的游戏。简而言之,你可以想象游戏中的每个玩家提交一些句子,然后确定这些句子的分数。根据分数,会发行一些硬币(游戏内币)。
因此,客户端可以向游戏发送命令。客户可以提交一个单词的句子。现在我实现这个作为客户端请求处理程序(我不知道这些在CQRS世界中可能与哪些相关,一个短暂的传奇/ PM?)获取后备FSM命令处理程序的actor并发送例如Commands.SubmitSentence(...)。然后,该命令处理程序处理该命令,验证该句子,并生成一些事件(SentenceSubmitted,作为一个明显的事件)。我不完全确定我是否应该从我的API级别直接向PersistentFSM发送命令,因此也欢迎输入。
我的主要问题是基于如何处理外围影响。例如,一旦每个玩家提交了句子,我们就需要生成积分和硬币。点数仅用于该游戏的视图中,但是如果玩家想要花钱,则需要将硬币保留在系统中的其他位置。我这样看着它:
稍后,当我构建个人资料和购买系统时,应用程序的这些区域将使用CoinCreated事件来聚合玩家实际拥有的硬币数量。
这是否有意义?
由于 瑞克