У меня есть этот поток, в котором мы должны сохранять в DynamoDb некоторые элементы в течение определенного времени.После истечения срока действия элементов мы должны позвонить в некоторые другие службы и сообщить им, что срок действия данных истек.
Я думал о двух решениях:
1) Переместитьпроверка срока действия в логике Java: извлечение данных DynamoDb в пакетном режиме, проверка элементов срока действия в Java, после чего удаление данных в пакетном режиме и уведомление других служб.
Существуют некоторые ограничения:
BatchGetItem позволяет получать макс. 100 элементов. BatchWriteItem позволяет удалять макс. 25 элементов
2) Переместить проверку истечения в логику БД: Запрос к DynamoDb, чтобы проверить, какие элементы устарели (и удалить их), и вернуть идентификаторы клиенту, чтобы мы могли уведомить другиеservices.
Опять же, существуют некоторые ограничения:
Набор результатов из запроса ограничен 1 МБ на вызов.
Для обоих решений будет задание, которое будет запускаться периодически, или мы собираемся использовать некоторую лямбду aws, которая будет периодически запускаться и будет вызывать конечную точку из нашего приложения, которое будет удалятьэлемент из базы данных и уведомить другие службы.
У меня вопрос, подходит ли DynamoDb для моего случая, или я должен использовать какую-то реляционную базу данных, которая не имеет такого рода ограничений, как Mysql?Как вы думаете ?Спасибо!