#21 The Perennial Problem of Sequencing
In the "7 habits of highly effective people" Stephen Covey talks maturity continuum, which is crucial to be effective in all aspects of life. The Maturity Continuum progresses from a paradigm of dependence to independence to interdependence. This continuum also applies to the life of service, and this is what we are going to explore in this blog.
Monolithic applications and the era of dependence
In monolithic applications architecture, different parts of the application, which were called modules, were strongly coupled together. I mentioned modules because even during that era, the goal was to introduce as much loose coupling as possible.
Microservices and the era of independence
As service-oriented architecture became mainstream, these modules got transformed into what we would call today coarse-grained microservices (if you hate oxymorons, call them macroservices). This did not exactly make services independent but became a precursor to it by solving the contract problem.
Since services were independent, they needed to define their service-to-service contracts as APIs. Since these contracts were not static in time, these APIs also needed versioning. The most significant proof of how transformative these public APIs were was that API management became a sizable industry.
领英推荐
In the next iteration, these coarse-grained services transformed into fine-grained services. This was fueled by the cloud movement as lighter artifacts were needed, which could be replicated across zones. These microservices were also supposed to be independently deplorable.
Roost and the era of the interdependence of microservices
Microservices are as independently deployable as modules were modular in the era of dependence. What challenges this independent deployability is the problem of ordering. You can not deploy a cart before the horse.
When a service is changed, this change is compatible with a specific version of upstream and downstream services. These versions are manually kept track of, both tiring and error-prone.
Summary
The most effective way to leverage microservices architecture is acknowledging their interdependence rather than chasing the utopian dream of considering them independent. Service sequencing and order are as extensive as a problem in designing microservices. The roost platform automates the whole process. Learn more at https;//rooost.ai ?
Good job in calling out the "interdependence" problem Rishi Yadav. Microservices cannot operate by themselves. They are like people, independent and interdependent ??