CONTACT

The Client

Axis Mutual Fund is the 7th largest mutual fund house by asset size and the mutual fund wing of the 3rd largest private bank in India – Axis Bank. They have over 11 years of experience in the Indian asset management industry across asset classes with nearly 9 million active investor accounts in various schemes and presence in over 100 cities of the country.

  • 28Bn AUM
  • 8.7 Mn Active Investors
  • 100+ Cities present in

Service Offerings

Services

Architecture Design
Backend Development
Frontend Development
Quality Assurance

Tech Stack Used

Nodejs

Angular

Docker

Kubernetes

Redis

RabbitMQ

Nginx

Jenkins

MySQL

Jira

BitBucket

Business Scenario
& Problem Statement

The client wanted to introduce Whatsapp as a channel of communication with their investors & distributors. Through this channel, they wanted to facilitate an easy access to different account related queries for their customers. The customers could also connect with the customer care agents through whatsapp.

Business Requirements

We organised discovery workshops to gather requirements and this was followed by a technical analysis. At the end of the discovery phase we documented the functional and nonfunctional requirements.

  • Design a microservice architecture for the application
  • Incorporate Machine Learning to learn and address frequently asked questions
  • Securely connect with different on-premise client systems via APIs to fetch data
  • The system should be hosted inside the clients secure internal infrastructure.
  • All activities and messages should be logged
  • The platform should be highly scalable and secure. The System should be designed to scale up and down based on demand
“Response time to be as minimal as possible”

Risk Factors

These were the major risk factors that we identified during our technical discovery phase

  • Recommended infrastructure is either docker swarm or kubernetes.
  • If hosted in a single server, the application scalability limitation is the resource limitation for the server.
  • Queue poisoning, a proper queue monitoring system should be implemented to check service faults and queue size.
  • Cache service bloating, must set an expiry for cache data to prevent cache overflows. Both queues and cache should be in cluster mode for the ease of scaling.
  • In case of failure and backup system should be in place to continue limited services from a previous state.
  • System should be maintained for security updates and dependency updates.
  • Rigorous stress tests are required to identify bottlenecks.

Solution Overview

  • Microservices and APIs were developed using Node.
  • Implemented using Reactive design pattern
  • Kubernetes was used to manage the docker containers
  • Each service exposes REST API to be consumed by API gateway users as well as other services.
  • Inter service communication using AMQP Message broker, RabbitMQ was implemented as part of performance tuning.
  • Distributed Cache using Redis was implemented as part of performance tuning.
  • DevOps integration was implemented using Jenkins.

Architecture

Results/Outcome

     

    • Highly scalable application is prepared with the help of microservice architecture along with caching and queuing processes.
    • Enhancement on a particular module does not need the complete application testing and hence the releases are made quicker.
    • Since the services are separate, we can more easily scale the most needed ones at the appropriate times, as opposed to the whole application and this can impact cost savings.
    • Due to their modular architecture, microservices enable a high level of code and data reuse, making it faster and easier to deploy additional data-driven use cases and solutions for additional business value.

How can we help you?

Get in touch with us to schedule a consultation