У меня есть приложение, в котором я беру файлы на основе какого-либо события (SQS) и после некоторой бизнес-логики помещаю их в S3.Он работает в кластере ECS.
Я хочу, чтобы он был устойчивым, то есть даже в случае сбоя контейнера файлы не должны быть потеряны или не должны быть переопределены в S3.Это может произойти в случае сбоя контейнера и воспроизведения события SQS.Файл S3 будет переопределен.
Чтобы справиться с этим сценарием, я подумал о создании идемпотентной записи для файла, который уже был обработан, а затем PUT на S3.И перед действием PUT я всегда проверяю этот репо.Но что, если контейнер падает после создания идемпотентной записи и до события PUT.
Мне нужен способ, которым я могу гарантировать, что эти два события являются атомарными или они находятся в какой-то транзакции.