Если я правильно понял.
Я бы не стал спускаться на такой низкий уровень, как транзакции, при работе с эффектами.
Т.е. есть некий процесс/функция и он снаружи обернут в транзакцию. Т.е. сам процесс про транзакции ничего не знает, но вызывающая сторона знает.
А внутри запускать эффекты вроде - дай дакие данные, запиши такие данные.
Можно даже сделать эффект "как закоммитишь, сделай вот это". Письмо там отправить или уведомить кого-нибудь.
Если все-таки нужно оперировать началом, концом транзакций, сейвпоинтами, несколькими транзакциями, то нужны подробности. Может быть тут эффекты не особо помогут. Я хочу использовать эффекты для разделения логики от реализации, а тут реализация протекает в логику.
я пытаюсь сообразить, с чего начать, но пока не очень выходит.
ладно, я пока отложу вопрос, попробую накидать пару прототипов, а потом может вернусь и обсудим.