Size: a a a

Боль Тимлида

2021 April 03

Ms

Mutko says in Боль Тимлида
В бухучете нет отката операции, есть корректировка. Списали 100 рублей, для отката — начислили эту же сотку обратно другой операцией
источник

PD

Phil Delgyado in Боль Тимлида
Mutko says
В бухучете нет отката операции, есть корректировка. Списали 100 рублей, для отката — начислили эту же сотку обратно другой операцией
До закрытия дня можно откатить. Потом уже сторно, но много сторно вызывает вопросы от ЦБ, поэтому проще провести обратную операцию (если сможешь).
Но вот обратная проводка - это и есть 'обратная функция' к прямой проводке. Но не для всех бизнес-операций есть такие обратные функции.
А еще может упасть выполнение обратных операций и тут в сагах все совсем грустно.
источник

Ms

Mutko says in Боль Тимлида
Логика упасть откат — это как мы совсем неуверены в том, что мы делаем, что даже не мониторим результат отката
источник

Ms

Mutko says in Боль Тимлида
Я бы обвязал такой сервис оберткой с проверками и уже этот сервис использовал для сбора и верификации таких случаев
источник

Ms

Mutko says in Боль Тимлида
Я к чему веду — в саге нет отката, есть корректирующие операции
источник

Ms

Mutko says in Боль Тимлида
Иначе две параллельно исполняемые саги будут откатывать баланс одного и того же счета с очень серьезными последствиями
источник

Ms

Mutko says in Боль Тимлида
Буквально был баланс 100 рублей, первая сага делает -10, и формирует откат-операцию 100, вторая сага делает -10 и формирует откат операцию 90
источник

Ms

Mutko says in Боль Тимлида
Хотя все что они должны сделать current_value += 10 как корректировку
источник

Ms

Mutko says in Боль Тимлида
Все это время статус списаний booked, как только собрали информацию по успешным транзакциям — статус выставили confirmed
источник

Ms

Mutko says in Боль Тимлида
Баланс после двух (не)завершенных саг будет 80 для избегания овердрафта
источник

PD

Phil Delgyado in Боль Тимлида
Mutko says
Я к чему веду — в саге нет отката, есть корректирующие операции
Есть обратные операции, да. Но именно уровня операций, а не всей бизнес-транзакции, а этот подход обычно не работает.
источник

Ms

Mutko says in Боль Тимлида
Phil Delgyado
Есть обратные операции, да. Но именно уровня операций, а не всей бизнес-транзакции, а этот подход обычно не работает.
Это не обратная операция, это корректировка
источник

Ms

Mutko says in Боль Тимлида
Переводит клиент деньги другому клиенту банка — две операции списание и начисление, если мы зафейлились на любом из шагов — делаем всем остальным успешным шагам корректировку
источник

PD

Phil Delgyado in Боль Тимлида
Mutko says
Это не обратная операция, это корректировка
Хм, смысл саг (как паттерна):
g(g(g(f(f(f(x)))))) =0, где g = f**-1
источник

PD

Phil Delgyado in Боль Тимлида
Так вот, аддитивность операций, аддитивность обратных операций, наличие обратных функций (в виде корректировок или чего угодно) - слишком жесткие требования для реального мира.
источник

PD

Phil Delgyado in Боль Тимлида
Даже формальная идемпотентность сложна, обычно можно требовать чуть более мягкого 'повтор операции не приводит к печальным последствиям'.
источник

Ms

Mutko says in Боль Тимлида
Серьезно? Повтор операций над балансом?
источник

Ms

Mutko says in Боль Тимлида
До победного?
источник

PD

Phil Delgyado in Боль Тимлида
Изменение баланса при повторе - это как раз 'печальные последствия' )
источник

Ms

Mutko says in Боль Тимлида
Я просто знаю что есть стоимость платежки, и при первом же неуспешной транзакции клиенту дают отлуп
источник