> It's really not. A service adds complexity. If you have no reason to add it besides to "reduce complexity" - that is an oxymoron.
No, it really is. I can just as easily say that a system is simpler when it's composite parts are isolated, or that a system is simpler if I can take one component and reason about it in isolation, etc.
Similarly, I could say that libraries add or reduce complexity by making similar appeals like "a single unit of code is simpler" or "separate, smaller units are simpler" etc.
> No, it really is. I can just as easily say that a system is simpler when it's composite parts are isolated
No, a system can not be simpler because you moved A' to B and introduced C (complexity - an added network, gateway, communication layer) for no reason besides to make the entire system simpler.
It is not simpler! You did nothing besides introduce C (complexity)!
It's really not. A service adds complexity. If you have no reason to add it besides to "reduce complexity" - that is an oxymoron.
There are many concrete reasons to have one. Reducing complexity is not one.
That's like arguing you can drive farther forward if you go in reverse. No.
There are reasons to drive in reverse. To move forward is not one of them.