IO
is actually quite simple IMHO. However, it does has a learning curve that affects newcomers.
The two main reasons are that IO
is based on a different programming paradigm which we like to call “Programs as Values”, and that it has some syntactic overhead.
If you want to learn more I have some resources and examples here: GitHub - BalmungSan/programs-as-values: Source code of the programs as values presentation which hopefully can provide useful. Also, feel free to ask follow up questions either here or in Discord.
About mixing cats-effect with Play, yeah I agree is not idea. It is possible, but usually done during a migration process not as an ultimate design goal. And, the mixing requires being proficient in both technologies.
However, I would expect Akka to have some form of resource management that you may leverage to solve your main problem.