Может ли DynamoDB stream видеть незавершенную транзакцию?

У меня есть таблица DynamoDB, в которой я использую транзакционные записи (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html). Сделка состоит из 2-х пут. Допустим, первая операция удалась, а вторая - нет. В этом сценарии библиотека транзакций откатит первое размещение.

У меня также есть потоки DynamoDB (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) включен в таблице, и другое приложение использует этот поток.

Вопрос: В сценарии отката первая успешная операция put приведет к событию потока DynamoDB, а откат приведет к другому? Если да, есть ли способ предотвратить это, то есть гарантировать, что событие потока запускается только для полностью завершенной транзакции?


person Nitesh Kumar    schedule 13.12.2018    source источник


Ответы (1)


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

Изменения, внесенные с транзакциями, распространяются на глобальные вторичные индексы (GSI), потоки DynamoDB и резервные копии, в конечном итоге, после того, как транзакция завершится успешно. Из-за возможной согласованности таблицы, восстановленные из резервной копии по запросу или на момент времени (PITR), могут содержать некоторые, но не все изменения, внесенные недавней транзакцией.

Итак, пока я это читал, вы ничего не увидите в потоке до тех пор, пока транзакция не завершится успешно.

person Charles    schedule 13.12.2018