В том и дело, что приклад-то пишется не как вещь в себе, а как дергалка внешних событий. Поэтому абсолютно стандартная ситуация: 1. Записал конфиг для сервиса. 2. Дернул сервис. 3. Получил коллбэк от сервиса. 4. Записал, что сервис рапортовал о завершении. И вот если на п.3 приклад был по какой-то причине мертвенький, то все плохо. Значит, надо на стороне внешнего сервиса городить ретраи. Вообще, конечно, логика at least once и at most once реализуется тривиально (пнул, записал и записал, пнул). Вот exactly once - это сложнее. Правда, на этом этапе мы вполне переживаем ситуацию: "когда приклад сдох, у него три задачи висело в неконсистентном состоянии; оператор, сходи в логи внешних сервисов и руками закрой или поретрай".
no subject
1. Записал конфиг для сервиса.
2. Дернул сервис.
3. Получил коллбэк от сервиса.
4. Записал, что сервис рапортовал о завершении.
И вот если на п.3 приклад был по какой-то причине мертвенький, то все плохо. Значит, надо на стороне внешнего сервиса городить ретраи.
Вообще, конечно, логика at least once и at most once реализуется тривиально (пнул, записал и записал, пнул). Вот exactly once - это сложнее.
Правда, на этом этапе мы вполне переживаем ситуацию: "когда приклад сдох, у него три задачи висело в неконсистентном состоянии; оператор, сходи в логи внешних сервисов и руками закрой или поретрай".