I had a similar experience too! We updated to v4 thinking that it would only add to Strapi, not detract from it. We didn’t realise just how much we needed transactions until the migration had already taken place, which put us into a bind. It was too late to use something else now, so we’re going to have to do low level transactions and avoid lifecycle hooks which has created such headaches for us