Как клиент должен обрабатывать добавленные / удаленные / разделенные сегменты потока DynamoDB?

#amazon-web-services #amazon-dynamodb #amazon-dynamodb-streams

#amazon-web-services #amazon-dynamodb #amazon-dynamodb-streams

Вопрос:

Из руководства по разработке Amazon:

Сегменты эфемерны: они создаются и удаляются автоматически по мере необходимости. Любой сегмент также может быть разделен на несколько новых сегментов; это также происходит автоматически. (Обратите внимание, что родительский сегмент также может иметь только один дочерний сегмент.) Сегмент может разделиться в ответ на высокие уровни активности записи в его родительской таблице, чтобы приложения могли обрабатывать записи из нескольких сегментов параллельно.

В моем приложении мне все равно, из каких сегментов поступают данные, я просто хочу обработать все изменения. Однако при настройке потоковых процессоров вам необходимо подписаться на сегмент или набор сегментов. Как вы можете быть уверены, что получаете все изменения, если сегменты могут быть удалены / разделены / добавлены в любое время?

Должен ли клиент опрашивать список сегментов на предмет изменений?

Ответ №1:

ДА. Если вы используете низкоуровневые API-интерфейсы потоков DynamoDB, вам необходимо позаботиться об этих сценариях самостоятельно.

Лучшая идея — использовать адаптер Kinesis DynamoDB Streams, который позволяет использовать клиентскую библиотеку Amazon Kinesis. Последний решает все вышеупомянутые сложности для вас, тем самым упрощая вашу жизнь.

Соответствующую документацию можно найти здесь .