Нашёл занятную библиотеку с не менее занятным названием - goed verhaal - реализующую монаду для отката произвольных эффектов при возникновении исключений.Saga
(а именно так эта монада называется) может быть полезной, если вы встраиваете нетранзакционные действия внутрь ConnectionIO
через liftIO
или, наоборот, осуществляете транзакции в контексте F[_]
. Важно помнить, что откат операции тоже может упасть с ошибкой, но на остальные rollback-действия это не повлияет.
Несмотря на то, что написана библиотека почти год назад, ввиду единственной основной зависимости (cats-effect) она может быть легко скомпилирована с Scala 2.13 уже сейчас. В тестах, правда, придётся избавиться от зависимости на cats-scalatest (или подождать, пока её скомпилируют с 2.13) и удалить несколько флагов компилятора из build.sbt.
>>Click here to continue<<
