CONTACT

The Client

The client is a communications workflow company developing software solutions for enhancing business communications. They provide communications workflow solutions, fax server technology, business process management, forms OCR processing and database management systems. Their range of products can be integrated into a communications framework using their proprietary communications workflow server.

Service Offerings

Services

Architecture Design
Backend Development
Frontend Development
Quality Assurance

Tech Stack Used

DotNet Core

Angular

Jira

BitBucket

Docker

Kubernetes

Redis

RabbitMQ

Jenkins

Business Scenario
& Problem Statement

The client’s proprietary communications workflow server routes messages and attached documents between a network of application connectors. These connectors are built on their proprietary connector framework and provide a host of functionalities. This entire solution was developed using Dot NET on a monolithic architecture. It was becoming difficult to build additional features, maintain the old software and scale. After a technical evaluation, we recommended upgrading to a high performance micro-services architecture and port the software to Dot NET core.

Business Requirements

  • Design a microservice architecture that would deliver high performance, scalability and availability for the workflow server application
  • Migrate the existing application from legacy .NET to .NET Core
  • Migrate the existing gateway module web service to new architecture
  • Expected load is 100 requests/sec with 1.5s as response time
  • Max load is 200 requests/sec with limit for response time not defined.

Solution Overview

  • Microservices and APIs were developed using .NET Core.
  • Kubernetes was used to manage docker containers
  • Each service had its own storage engine.
  • Each service exposes REST API to be consumed by API gateway users as well as other services.
  • In-Memory cache was implemented for query functions.
  • 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

  • Microservices architecture provides high efficiency. As the individual service can be scaled up or down based on the demand. This leads to lesser infrastructure cost.
  • Since each microservice can be in different technology. The hiring decisions are also made easy.
  • Release of new features is only limited to participating microservices only. This helps to speed up the releases as it requires only that particular service to be tested.
  • Changes or addition of new features can now be done easily and rolled out faster.

How can we help you?

Get in touch with us to schedule a consultation