CQRS原型 一个在CQRS中演示命令端的项目。 它具有一个聚合的“组织”或组织配置文件,它接受两个命令:使用名称,位置等创建和更新其信息。 主要步骤: 网关:从Lambda处理程序到命令 通过api调用从客户端发送命令。 第一步是从api方法和请求中获取正确的命令。 通过使用Value Object构造函数,可以完成任何数据验证(字符串长度,最大值等)。 域:处理命令,拒绝或接受它作为新事件 这是CQRS中的主要命令。 基本上,我们从事件存储中加载聚合流并重播它。 但是,重播事件对于像Java或Net这样的命令式语言来说是非常困难且肮脏的,因为我们必须处理状态。 这就是为什么Scala是CQRS很好的语言的原因。 因为在Scala中,重播基本上只是向左折叠操作。 重播它们之后,我们最终尝试对其应用新命令。 如果它满足所有不变量,那么我们将其变成一个新事件。 如果没有,我们拒绝它。 笔