If there is one big transition that took place in the past decade or so in terms of application development style and deployment patterns then it has to be migration from Monolithic application development to Microservices.

The latter had provided us with various advantages by splitting the bigger application into various smaller chunks with each chunk being called a microservice.

  • Each chunk can be written in a different programming language and have its own database that suits the scale at which the chunk operates.
  • Each chunk can scale independently based on the amount of processing it does.
  • Build time and…


When you ask a developer, what are the two key things that are required for better performance of an application, the answer will surely be

  • Number of CPU Cores.
  • Application RAM.

When it comes to monolithic architecture, we estimate the total CPU and RAM required for an application and pick one huge machine with a very huge number of CPU Cores as well as hundreds of GB’s of RAM.

The issue with such huge machines is they are pretty costly compared to multiple horizontally scaled lightweight machines as well as they are hard to get one instantaneously unlike lightweight machines…


Working for an E-commerce company with a pretty huge customer base, the primary thing that we always keep in our mind while we code is to keep it performant enough to serve huge traffic.

As a developer, we benchmark the application with lakhs of requests and try to come up with a breakpoint on what’s the max load that the application or database server can handle at any given point of time. We call that as SLA(Service Level Agreement) which states about the max requests the system can handle, 99% response time, uptime, and a few other stats.

No matter…


Introduction

One primary factor that attracts the end-user is how quickly the application responds back to the user request. Applications perform pretty well when the traffic is low but things start failing once the load increases on the application.

Before taking the application to production, there will be rigorous benchmark testing on what’s the max load that the application server or database server can handle. …


With a rapid transition from Monolithic application development to Microservices based application development, communication between microservices has become a crucial and core component. We need some sort of common language pattern where all dependent microservices should be able to communicate irrespective of programming language.

It all started off with XML and we then moved on to JSON (Javascript Object Notation) which is a key-value pair. JSON worked well with REST and is still the go-to guy when it comes to microservices communication. But just like any other product which has its own ups & downs, there are quite a few…


In continuation of my previous article where I’ve detailed on the limitations of goroutines, in this article, I would like to share how we achieved 70 million sets to Aerospike Database in 30 minutes by leveraging the entire system Cores with the help of Go Worker Pool Pattern.

Usecase Insights

  • Currently, at GoIbibo we had close to 70 million users and we had a set of categories that each user belongs to. The categories describe if the user is new | fraud |regular transacting user | user who didn’t transact in last year etc and so on …
  • User Categories…


When we hear the term goroutines the very first thing that come to our mind is, it’s way faster than threads, pretty much lightweight as compared to threads and is managed by the Go runtime which doesn’t depend much on the Operating System.

Many of those who had freshly started with Go will be in an assumption that any sequence of actions can be parallelizable by spinning multiple go-routines. But that’s true only to a certain extent and increasing more go-routines doesn’t help after that.

So without much lag, let’s get straight on to the point. In this blog post…


If there is one thing without which a backend application become completely non-functional then it has to be the database. Working in an E-Commerce Company our day to day life is more about fetching the data from the database, process it and send it to the caller service(Front End) which uses the data to display some handful of insights to the end-user.

Communication with the database is solely done by the backend services and working at scale one needs to know the underneath of how the communication happens and how connections are created or reused.

In this post, we will…


As a developer, our day to day life involves more debugging than developing a new feature. Working with a high scale application its recommended to have as minimal logging as possible as each I/O operation is more costly than the entire processing of the request.

Having minimal logging it’s gonna be a tough day at work when an issue gets raised and we need to find a portion of code that’s misbehaving. The conventional way to do this is to put some print statements in a portion of the code that we feel is suspicious. …


Pre-Requisites -> Functional Knowledge on Go Programming

In the age of the internet controlling our lives, the B2C companies started flourishing across the world. Be it anything from groceries to nappies everything was made online. There might be a thousand factors that make a product successful out of which Customer Experience is one.
When it comes to customer experience, a couple of things that make the customer love the product are un-interrupted service and faster response time.

Take an example where you opened GoIbibo for searching a flight and it takes a minute and finally says there are no flights…

mourya venkat

I will starve to death if you don’t feed me some code. Quora : https://www.quora.com/profile/Mourya-Venkat-1

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store