Introduction The world of databases is very interesting. To build a loveable product, a core infrastructure piece that's needed is the data persistence layer. I find this data persistence layer to be like a tip of the iceberg, the get and the put calls have so much going under the hood that it's mind blowing … Continue reading Trying to Wrap My Head Around The Dynamo Storage System: A Deep Dive
Introduction All software projects, (even relatively smaller ones) are the result of aggregation of several components and modules. As these software projects grow and evolve, the way we connect these components becomes a win or lose factor.I believe, that the way we orchestrate these components decides if the software will evolve as fast as the … Continue reading Dependency Injection: Taming the modules that make up our software.
Indexes make our queries run as fast as a cheetah! Right Practice. Right Results This post is part of newsletter that I run "Scamming the Coding Interview", which is geared towards continuous practice on concepts to ace the engineering interviews. Subscribe Once upon a time there was a master named Roshi whose relational database used … Continue reading A Tale on Concatenated Indexes: Master Roshi and Goku’s fireside chat
LSM Trees overview This post is a part of a newsletter that I run: “Scamming The Coding Interview“, which is geared towards helping people ACE their coding interviews. We send a coding question on weekdays along with a system design article like this one on weekends. Do subscribe If you find this article valuable. Introduction What will … Continue reading Introduction to LSM Trees: May the logs be with you
I recently read the book Architecting for Scale by Lee Atchison. The book contains a high-level overview of the major concepts that revolve around the topic of building highly-available and scalable apps.I felt the book to be more suited as a light read for people already familiar with these concepts rather than being an informative … Continue reading Architecting for Scale by Lee Atchison: Reading Experience
This post is a part of a newsletter that I run: "Scamming The Coding Interview", which is geared towards helping people ACE their coding interviews. We send a coding question on weekdays along with a system design article like this one on weekends. Do subscribe If you find this article valuable. When a new system … Continue reading How To Objectively Reason About Systems: Correctness Properties Of A System
You are a part of a startup which has recently scaled to reach a huge number of users. This means that the increased number of users are going to generate a huge amount of data that you have to store and manage.It soon becomes evident that managing a huge dataset is a major hurdle to … Continue reading Basics of Database Partitioning and Partition Strategies