Avoid Distributed Transactions; fix granularity instead!
We all want decoupled services; they are easy to maintain, scale, and more (you probably know all the cases now).
But that trivial ATOMICITY you had in monolithic applications becomes a problem in distributed ones.
When we make these smaller parts too tiny, we end up needing to tie them together more than we should.
Let me tell you a secret: it is totally fine to merge those services.
Remember, some of these decisions were made with less domain knowledge.
Sure, you will find exceptions where two different services need different architectures, even frameworks. In those situations, go for the SAGAs they will help.
But again, if you can fix granularity, go for it and thank me later.