我有一个DynamoDB表,我正在其中使用事务写入(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。交易包括2看跌期权。假设第一个看跌期权成功,第二个失败。在这种情况下,第一个看跌期权将被交易库回滚。
我还在表上启用了DynamoDB流(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html),并且另一个应用程序使用了该流。
问题:在回滚方案中,第一次成功放置将导致DynamoDB流事件,而回滚将导致另一个事件吗?如果是,是否有办法防止这种情况,即确保仅针对完全完成的事务触发流事件?
答案 0 :(得分:3)
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html
与交易有关的更改将传播到全局辅助数据库 索引(GSI),DynamoDB流和备份最终在之后 交易成功完成。由于最终的一致性, 从按需或时间点恢复(PITR)还原的表 备份可能包含近期所做的一些但不是全部更改 交易。
因此,当我阅读本文时,直到交易成功完成后,您才能在流中看到任何内容。