Истории об идемпотентности
Идемпотентность — это когда результат действия не зависит от количества его исполнений: запусти процесс один или сто раз — в любом случае получаешь тот же самый результат.
Важная концепция из мира работы с данными — тут миры дата-инженеров и бэкенд-разработчиков пересекаются.
Денис Исаев из Яндекс.Такси на примере реальных историй показывает, как проектировать процессы идемпотентными (и когда не надо :-). Есть ссылки на реализации API в Amazon AWS и Google Cloud.
Кейсы кажутся очень похожими на реальные:
1. Приложение шлёт одинаковые запросы с разницей в секунды
2. Приложение шлёт запрос с плохим интернетом (или моргнула сеть в инфраструктуре)
3. Мультизаказы с ключом идемпотентности, который генерируется на клиенте.
4. Ключи идемпотентности хорошо бы хранить на сервере (и не удалять при отмене заказа)
5. Soft-delete — вместо удаление строки в базе, просто ставить флаг deleted_at=now()
https://habr.com/ru/company/yandex/blog/442762/
Post #173
653