Building Modern Software Applications with Microservices

MRK
2 min readJan 26, 2022

--

Before the advent of microservices there existed mostly what is known as a monolith application. An all-encompassing application that is designed, built, tested, and deployed job done or maybe not. Of course, this is exactly why 80% of all software projects ultimately failed. Especially in a world where nothing sits still and requirements are constantly changing and evolving. Even if the monolith was built to perfection 9 times out of 10 it becomes obsolete almost immediately it is released into the wild. The process of updating such an application can be extremely difficult because the team that built the application has moved on technologies have changed etc. It is usually easier to just start again and build something new to meet new requirements and then we go through this cycle again of releasing something that's obsolete.

A modern era has finally dawned and the process of developing and delivering software has changed. Ultimately software is being delivered in a way that it can continually evolve and change according to the needs of the business. It is never finished but ever-changing because the competition is changing and we need to adapt and take advantage of new opportunities or implement new regulations. Applications are now built on a concept of Microservices where instead of a single monolith we have multiple independent features working together. Each feature with the ability to be updated/removed without impacting the ability of other features to continue working. This goes all the way from the user interface (UI) being made up of small independent components to the services that satisfy the needs of the UI through to the multiple databases that house the data of each individual feature or service. Well, maybe it is not so perfect nothing ever is but it's certainly much better. Software is now being built to evolve and it can only do so when dealing with small components that are easier to implement/update/remove and deploy. Ultimately there will still be some interdependencies and managing change is still difficult and complex but it's certainly more manageable.

You could think of it as the decentralization of power. Rather than everything being done by one big application, different requests are handled by different specialized components to serve a common goal.

--

--

MRK

SCRUM, Software Delivery, Developer, QA and Lover of life.