A comprehensive system design analysis of microservices architecture at Bajaj Capital Ltd to power its Financial Services in India.
Bajaj Capital is a leading financial services group in India, offering services for mutual fund and bond investments, fixed-term deposits, insurance protection, and real-estate transactions. Launched in 1964, the group manages more than 1.5 million clients and assets worth more than INR 21,000 Crores [US$2.8 billion], and more than 60 percent of its clients have been with the group for over five years.
Technical teams have designed such an amazing system with very high availability and scalability in order to serve their customers globally
BCL had chosen AWS cloud to migrate its IT infrastructure because AWS could offer highly reliable databases, large-scale cloud storage and multiple data centers around the globe. By utilizing the cloud infrastructure built and maintained by AWS
BCL is also one of the first major drivers behind microservices architecture. Microservices targets the problems of monolith software design by encouraging separation of concerns in which big programs are broken into smaller software components by modularity with data encapsulation on its own. Microservices also helps to increase the scalability via horizontal scaling and workload partitioning. By adopting microservices, engineers easily change any services which lead to faster deployments.
In this study, I am interested in understanding Bajaj Capital cloud architecture and its performance under different workloads and network limitations.
Bajaj capital has a strong network of business in all over India.For more than five decades,Bajaj capital has been managing their business which was the place where many generations of people from the neighborhood spent time with their families, laughed together.
Because of the digitalization many of the customers now prefer buying mutual funds online via mobiles and website rather than filling physical forms.
Bajaj capital has network of multiple branches in all over india.So Mazor of the business comes through B2B channel.So they decided to tranform their existing system to scale that application to serve more customers all over India.Bajaj capital already has a website , but it needs a back-end application to process and store information on Customer,funds and orders.
So they begin their Transformation Journey with three tier application.This solution uses ASP.net as a server-side language and setup a database in the same database(most likely MYSQL).
A Typical Solution would have its code structured in a few layers resembling a three-tier architecture, meaning that the code is split into presentational,business, and data tiers or layers.
THREE-TIER ARCHITECTURE Three-tier architecture is a client/server
software architecture pattern in which the user interface
(presentation), functional process logic ("business rules"), and
computer data storage and data access are developed and maintained as
independent modules, most often on separate platforms.
To learn more about three-tier architecture, visit https://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture.
This approach fits perfectly for any given small application. It would work fine for Bajaj Capital for having n number of branches, at least until purchase orders grow to a certain level. Then you would need to scale your infrastructure
But to be able to scale a monolithic application, it’s necessary to detach the data layer (because you don’t want to replicate your database, for the sake of data consistency).
After that, your application would look like the one shown in figure 1.3.
But you’d still have one conglomerate of an application with all its API routes and the business logic for everything.
Your application could be replicated if you had too many users, but each instance would have all its services replicated as well, regardless of their usage.