In the early 2000's, we witnessed the rise of Service Oriented Architecture (SOA), a popular design paradigm for building software.
You might be thinking, why should I care?
In simple words, SOA is a software architecture pattern that allows us to construct large-scale enterprise applications that generally require us to integrate multiple services, each of which is made over different platforms and languages through a common communication mechanism.
Now let's take a look at a case study: an eCommerce store. We know that multiple devices can access most eCommerce sites, so they have various user interfaces for laptop and mobile views.
We also know that multiple operations or services are running with each other to ensure the regular functioning of your eCommerce applications. Some of these services are account creation, displaying product catalog, building and validating your shopping cart, generating bill, order confirmation, payment mechanism and so on.
In a monolithic application, all these services run under a single application layer, so the eCommerce software architecture would look like this:
Microservice architecture can be considered to be a specialization of SOA and an alternative pattern that overcomes the drawbacks of a monolithic architecture.
In this architecture, we focus on modularising the application by dividing it into smaller standalone services that can be built, deployed, scaled and even maintained independently of other existing services or the application itself as a whole. These independent services are called microservices, hence the name Microservice Architecture.
Microservice introduces the philosophy of Separation of Concerns and ensures Agile Development of software applications in both simple and complex domains
The standalone ability or independent nature of microservices open doors for following benefits:
Now that we understand the reasons for all the hype around microservices, in the next article, we will take you on a deeper dive to how we leverage these technologies at Noodle Factory and build modern, scalable chatbot with it.
Hi, I am Abraar Syed. I spend most of my time building tools, games and softwares for people. Being a tech enthusiast and an engineer by choice, I have a constant thirst for learning, exploring new technologies and using my knowledge to develop impactful products. It gives me a sense of accomplishment to see how my work makes a difference to so many lives around me. Alongside, it also acts as my motivational factor, wanting me to do more and thus keeps me going. Being an extrovert, fun loving and humorous soul, I definitely enjoy socializing, meeting new people and being part of productive discussions. This is why I spend most of my leisure influencing young minds and building communities. I have been an active member of many open source and free software organisations like FSMK (Volunteer) and Mozilla (Regional Ambassador Lead).