The main issue is that when you start a new project almoust any approach is "simple enough". The problem is that an approach that is good long term will look like an overkill complexity on the first stages of a project. I have my creations like SwarmESB and swarm communication idea as a good example... could make the microservice systems simpler but only after a level of complexity and then it is too late to invest in a new approach. Therefore such technologies will not be addopted instead other complex workarounds become succesfull..