DynamoDB 流能否看到未提交的事务?

Can DynamoDB stream see an uncomitted transaction?

我有一个 DynamoDB table,我在其中使用事务写入 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。该交易包含 2 个看跌期权。假设第一个 put 成功,第二个失败。这种场景下,第一个put会被事务库回滚

我还在 table 上启用了 DynamoDB 流 (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html),另一个应用程序使用该流。

问题:在回滚场景下,第一次成功put会导致一个DynamoDB流事件,回滚会导致另一个吗?如果是,有没有办法避免这种情况,即保证只有交易完全完成才触发流事件?

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html

Changes made with transactions are propagated to global secondary indexes (GSIs), DynamoDB streams, and backups eventually, after the transaction completes successfully. Because of eventual consistency, tables restored from an on-demand or point-in-time-recovery (PITR) backup might contain some but not all of the changes made by a recent transaction.

因此,正如我所读,在交易成功完成之前,您不会在流中看到任何内容。