我正在研究从 Dynamo 表中获取流的最佳方法,对于使用 Dynamo Stream 是否保证不重复存在一些相互冲突的答案/文档。
主流文档页面有一个表格,其中显示了 Dynamo Streams:
流中没有出现重复记录。
但是,当您访问Streams with Lambda Best Practices 文档页面时,它会显示:
DynamoDB 流的 Lambda 使用者不能保证恰好一次传送,并且可能会导致偶尔的重复。确保您的 Lambda 函数代码是幂等的,以防止由于重复处理而出现意外问题。
DynamoDB 流的另一种实现是使用 Kineses 适配器,但该 doc 页面 根本没有提及重复。
流和 lambda 触发之间是否发生某种重复,或者这些页面之一是否已经过时?
正如文档所说,可以保证流恰好包含每个突变的一个记录。
无法保证 lambda 函数只会为记录调用一次。例如,第一次调用可能无法成功完成,并且将重试 lambda 函数。