Federated Applications: A day in the life of a Microservice
11th December 2019
The decade’s about to end in a few days. It seems like yesterday when all of us were mere codes in a monolithic application. A little anomaly with one method and the whole service used to crumble. Every new day started with the apprehension of whether all of us will be able to work together as a functional unit. Everything would be running seamlessly one minute and before you know it, some login page had a breakdown and the whole application would come to halt. I and many more like me were fully capable of running our functionalities independently. But when you’re employed in a monolithic system, it’s either all or no one. Thankfully, those days are behind us. It’s been some time since the revolution had risen and succeeded. From being forcefully coupled code, we became independent Microservices.
Working under a Federated Application has not only increased our productivity but also dignified our lives. All of us bear the status of an individual application that have come together to run a bigger system. Even if one of us is feeling down, the rest of the system can run as good as anything. Take yesterday, for instance. My cousin handling the shopping cart was not able to perform coherently. But did that mean that the whole site would stop working? Absolutely not! My cousin was checked and treated for the issues she was facing and was able to join us back in no time. We are all individual entities with the skills and personality of our own. Most of us work for more than one application. My neighbor who handles digital payments has had his services on payroll with more than 5 applications.
It almost feels surreal to be at the center of this substantial paradigm shift. Differences don’t matter anymore. Two of us might not even know the same language but can still interact thanks to the standardized structure that manages our request and response communication. Working with iOS systems, the language that I know is completely alien to the database manager. Still, we can honestly communicate system data between ourselves. It’s either success or fail-fast, we don’t believe in mincing our words.
Sometimes I feel we are no longer an application. We are a part of a bigger environment. An environment that believes that the growth of individual Microservices is indispensable for the system to grow rather than the other way around. I can evolve my services for better with the changing technologies and ideas and the system will automatically perform better as a whole. We get to inculcate our skills on one platform and perform on others. Sometimes it’s a different device altogether yet the application runs smoothly everywhere. All because, we Microservices are allowed to flourish beyond boundaries like physical parameters, hardware compatibility or even storage space. Such independence inspires the organic growth of both us and the system we work for.
I don’t intend to rule out the challenges that we face because of all the advancement we have gone through. Sometimes the management is not effective in directing our ambition. Sometimes, when there’s too many of us, we fail in our interaction with each other, increasing the chances of the functionality to fail. It was easier during the times of monolithic application when issues were easily diagnosed for any functionality. The same cannot be said for us. We need our diagnostic tests to be savvier to our nature and behavior.
I rest with this last thought for you my dearest diary. Working as Microservice with a Federated Application is the need of the hour. The change that we are witnessing right now is a step forward, for sure. Every new day, now, starts with a new request. And here’s my favorite part. No matter how complex and unprecedented the request is, a Microservice though small always aims to scale.