You can safely ignore the opinion of anyone/anything that claims there's a "golden solution".
That goes for ALL aspects of programming. EVERYTHING has a tradeoff, and it concerns me how often that pro vs con analysis is just never done.
I've worked in all the flavors here:
* Well designed, easy to use interfaces in a massive monolith
* Poorly designed monoliths with litanies of gotchas and edge cases
* Super fast microservices that "just work"
* Garbage applications tightly coupled across a network layer
What it all comes down to is the strength and ability of the design phase. Good engineers = good products.
This shouldn't need to be said but the comments also appear to sidestep that problem with a few proclaiming "golden solutions".
Be weary :)