Although microservices are already on the way out again, I am always fascinated with all the architectural paradigms that claim to solve a hard problem once and for all. The silver bullets of this world. Those that tried microservices in systems with a high complexity of the problem domain found that it was easy to define clean microservices but that it forced the problem domain complexity to the level where the microservices had to be connected to each other. That very easily became a big ball of mud as the integration layer on top of the microservices lacked clear modularity and decoupling mechanisms. Although we can decrease unnecessary complexity in the solution domain, i.e. where we design our system, the problem domain complexity is simply there and can only be ignored at your peril. So, whenever you have come up with a great idea to simplify a system, process or way of working, ask yourself whether you are breaking the Einstein principle: Everything should be as simple as possible, but not simpler!
reflection