⬅️ Background At my previous organization, we were building a health platform, and one of the most critical, high-traffic components was our Lab test booking service. One of its core functions is to serve package details like inclusions, prices, and provider information for thousands of user...
The Two Generals Problem is a mathematical theorem proving that no messaging protocol can reliably ensure that two parties share the same state. However, some approaches guarantee that two distributed systems will follow an acceptable state progression over time. That is, state changes progress...
Introduction At our current organization, earlier this year as we were looking at the errors at one of our signup API, we observed that nearly 5% of our requests were getting failed, all due to 400 BAD REQUEST errors, and the root cause was traced back to a regex check. This regex was a constraint...
Introduction At my current org, we have many applications running behind the API gateway that interacts with the outside world using REST APIs. To track server-side failures we built an alert system that nudges every time we get any 5XX error. As soon as we made the alert system live, we started...
Introduction Any application that communicates with other resources over a network has to be resilient to transient failures. These failures are sometimes self-correcting. For example, a service that is processing thousands of concurrent requests can implement an algorithm to temporarily reject...
Introduction In a client-server architecture, the client can request a job to be done from the server by sending messages to the server. Handling this communication can increase in complexity when you begin to manage the rate at which messages are sent, the number of requests a server can handle,...
Introduction In every software system, we need unique Ids to distinguish between several objects from one another. Recently, I wrote about the unique Id generation for a large scale distributed environment. In that article, we touched a little on UUIDs. In this blog post, I will share an...
Introduction Recently at work, We were looking for a way to generate unique IDs across a distributed system that could also be used as the primary keys in the MySQL tables. We knew in a single MySQL database we can simply use an auto-increment ID as the primary key, But this won’t work in a...