Hard things about micro-services

Let me first accept the fact that I personally like micro service architecture & the ecosystem of tools around it. I am investing lots of my personal time learning it and practicing it. There is no doubt that its has potential to provide the agility modern enterprise expects, if understood properly.

Problem is not in the architecture, but in the word “properly”. Though I am optimistic about the average enterprise software developer’s ability and skills, I lean mostly towards the camp of micro-services are natural evolution of SOA or ‘SoA done right’. The question you should ask is why SoA wasn’t done right in the first place? Without answering that question none of your team in the enterprise should ever be allowed to write a single service based on micro-service architecture. Most likely the answer to that question, will also be answer to your question of “will you be successful this time?”.

Two simple words to understand in literal English, but very hard to get it right in the world of enterprise software development are “coupling & cohesion”. If those two words were understood correctly, irrespective of your previous technology (CORBA, EJB, ESB etc), your application is most likely in a good shape and ready to take the full benefits of micro service architecture and all the nine yards, which comes along with it. Otherwise be prepared to repeat what you have done in the name of SoA adoption.