System Design Articles


System Design is a highly subjective topic. Problems discussed below will help us to cultivate different approaches that we may use and pros/cons of each approach.

Reactive Systems

What are Reactive Systems? Why we need Reactive Systems? Detailed discussion on Responsive, Resilient, Elastic and Message Driven nature of Reactive Systems.

Twitter Architecture

MVP of Twitter. Architectural choices and twitter feed optimizations as system scales. An overview of celebrity tweet problem and a possible solution to it.

Auto Complete

An Auto Complete or Type Ahead functionality can be build on Distributed Tries where each node caches top K terms of that prefix. These top K terms are dynamic and based on data mining of Current trends/ Top news etc.

Messaging Application

Scalable, Web socket based Messaging Application having one to one chatting and file exchange capabilities. It also shows online user and Send/Read message status

URL Shortner (TinyURL)

URL Shortener aka TinyURL comprises an array of worker hosts whose number can be varied as per traffic (Scalable). Used Memcache as distributed cache for low latencies.