11、命令生成器与事件物化器:实现高效数据处理与视图维护

命令生成器与事件物化器:实现高效数据处理与视图维护

1. 命令生成器相关内容

1.1 命令及所需数据

在进行数据变更时,突变(mutation)的输入可能并不包含构建命令所需的全部信息。由于命令处理器的突变函数需要是纯函数,因此在创建命令并提交处理之前,需要进行额外的处理。

在提交命令之前的工作应该是可安全重试的。若网络中断,客户端可能会重新提交突变,这会导致命令创建过程中的工作重新执行。这一阶段可视为对接收的数据进行丰富,以满足第一类业务规则,即针对静态数据的规则。任何业务规则的副作用都应在命令成功处理后发生。

以下是两个具体的例子:
- 处理表格数据 :对于接受表格数据的突变,一种方法是使用输入对象数组将数据拆分为行和列。但如果数据是用户在电子表格中创建的,让用户将电子表格上传到系统并提取表格数据可能更合理,这种提取就是命令生成的一部分。
- 文件上传 :当文件内容对系统无关紧要时,命令生成器可以接收文件并将其内容存储到对象存储(如 Amazon 的 S3)中,命令仅包含对对象存储的引用。

1.2 处理失败情况

命令生成和提交可能会以多种方式失败,主要包括以下几种:
- 输入验证失败 :对于 GraphQL 模式中无法表达的约束,输入验证可能失败。
- 命令日志写入失败 :如果命令日志无法接受写入,将新命令追加到命令日志可能会失败,此时应将系统不可用的信息传达给客户端,以便客户端重试请求。
-

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值