Things I try to cover in this article
What is a UDF?
UDF means User Defined Functions which means the database has to run the user-defined function in its own context at run time and return the response back to the client.
The user-defined function can be written in any language that the database understands. In the case of Aerospike, UDF’s are written in Lua which is a scripting language. …
Out of hundreds of optimizations that a developer thinks of, reducing the docker image size will be given the least priority. So did we.
As a result, our docker image started to weigh around 2.4 GB in size which indirectly resulted in our developer’s productivity. Below are the issues we faced with larger docker image size
-> Delay in running automated Integration Tests
Whenever we raise a merge request to the release branch, we have an automated process that builds a new image out of the raised MR code, spins up a new container out of it, and fire thousands…
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.
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
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.
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.
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.
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…