bootzooka
bootzooka copied to clipboard
Remove IO dependency from DB module
This PR removes IO dependency from DB module :)
Thanks :) Why the DB module, and not others?
@adamw baby steps :) I'll have more soon, so probably by the end of the year we'll have this one done :)
Ok, I guess we'd need to make up our minds if we want to go full-tagless-final, or keep the current approach of a hybrid (using a concrete effect IO where possible, tagless final only when necessary). The first one is uniform, the second provides simpler development of most services. So I'm on the fence :)
I went through writing everything in TF-way to simply using concrete effect like cats IO everywhere instead, this was a long journey but today I think that writing all your code tagless final just for the sake of it, brings nothing to the table and only complicates things and slows down development. I understand that its a nice exercise but I would use it only in places where we can actually gain smth from it, eg. handling errors with Cats MTL. And yes, I understand that you can use different effect in your tests or maybe easier swap cats IO for smth else in the future but no one does it :)