Для БД — транзакция с ROLLBACK. Для распределённых систем — saga с компенсациями. Практический подход: собираешь слайс cleanup функций по мере выполнения шагов. Если какой-то шаг падает — вызываешь cleanup в обратном порядке. В Go удобно через defer с флагом success: если success не стал true — defer откатывает. Важно чтобы компенсации были идемпотентными.
Как откатить частично выполненную операцию?
Middle+
87 просмотровAFK Offer AI
Как runtime.LockOSThread работает и зачем нужен?