Microservices, Domain Driven Design and Banking.

Mridula Rao
3 min readSep 1, 2019

--

The most used modern architecture is the Microservices architecture. A combination of Microservices and Domain driven design helps in building complex software with continuous integration, scalability and efficient performance. The exemplary for this combination of development will be the architecture and pattern followed by Netflix and Uber. Netflix displays finesse in giving highly available, scalable and speed to their customers. They have over 500+ microservices which run independently..To target the hyper growth of Uber, the need of scalability was high. The removal of tightly coupled modules have made development and maintenance easier for Uber.

What is a Microservice?

Microservice is an architectural style or pattern which is easy to maintain, test, deploy continuously. It is a group of services which work mutually exclusively but interact to make the application scalable and perform to the fullest as it scales. This was popularized by Martin Fowler in his publications. To understand better, below is the definition of microservices by microservices.io :

“Microservices — also known as the microservice architecture — is an architectural style that structures an application as a collection of services that are

  • Highly maintainable and testable
  • Loosely coupled
  • Independently deploy able
  • Organized around business capabilities
  • Owned by a small team ”

What is Domain Driven Design?

Let us define domain. When you Google the word domain the closest definition for our understanding is “a specified sphere of activity or knowledge.” . In this way of software development, we group the services which have identical operations into one, and make it mutually exclusive to other operations.

For example, Netflix has different services. The services could be divided with respect to user subscription based, search engine could be a different service, account related services will be considered as a different domain and so on. Each functional unit is considered as a domain.

The picture depicts microservices.

How are these used in Banking?

The world of banking has evolved exponentially. Customers prefer to use mobile banking or internet banking. Microservices help to attain highly available, fast and secure applications. There is a scope to divide the domains. For example, accounts, credit cards, payment wallet, UPI, investments and more can be the separate services to have an agile application. Deployments become seamless. This enhances the concept of continuous integration. This model increases the resilience due to loosely coupled entities. Since this software development style encourages the use of multiple languages, cross platform services can be used. Since all the services have independent databases, depending on the need the type of database can be customized. Testing becomes easier as the testing will be pertained to a particular service and not the entire application. Scaling the application becomes easier as the customer base increases.

Some of the references :

https://medium.com/@thibetian_71496/moving-from-monolithic-to-microservices-in-banking-a-progressive-transformation-approach-dac9a345c873

https://www.cio.com/article/3201193/7-reasons-to-switch-to-microservices-and-5-reasons-you-might-not-succeed.html

https://maveric-systems.com/blog/microservices-ii-is-it-possible-for-all-banks-to-adopt-microservices

https://dzone.com/articles/top-5-microservices-architecture-and-design-best-p

https://dzone.com/articles/microservices-basics

https://dzone.com/articles/why-microservices

https://stackify.com/what-are-microservices/

Lucidchart for the diagrams.

Thanking my dad and Akhil for proof reading the article.

--

--

Mridula Rao
Mridula Rao

Written by Mridula Rao

Software Developer | Entrepreneur | Knowledge Hunter

Responses (1)