Sitemap - 2022 - Arpit’s Newsletter

How Booking.com built an highly available User Review System

Overview of Discord's data platform that daily processes petabytes of data and trillion points

How Airbnb designed and scaled its central authorization system - Himeji

How Gojek masks and keeps users' phone numbers secure at scale?

How Yelp built and scaled their (near) Realtime Search

Serving billion GIFs every single day

How Dropbox efficiently serves and renders a large number of thumbnails

Real-time data aggregation for DynamoDB

How Razorpay scaled their notification system

Building a hyper-personalized type-ahead search

The Architecture of Pinterest's Time Series Database - Goku

The Architecture of Airbnb's Knowledge Graph

How Swiggy designed and scaled its chatbot

How Instagram efficiently serves HashTags

Exploiting and stealing from the BitTorrent network

Kademlia - a Distributed Hash Table implementation to power the overlay network of BitTorrent

The Piece Selection algorithm that makes BitTorrent fault tolerant

The Choke Algorithm that powers BitTorrent

Overview of the BitTorrent architecture

Understanding the Torrent File Format and Bencoding

Introduction to BitTorrent and the problem it beautifully solves

Implementing Hash Maps with Hash Tables

Implementing Hash Sets with Hash Tables

Implementing Resize of a Hash Table

Why are Hash Tables always doubled?

Getting the best performance from the Hash Table

Double Hashing for Conflict Resolution in Hash Tables

Quadratic Probing for Conflict Resolution in Hash Tables

Linear Probing for Conflict Resolution in Hash Tables

Conflict Resolution in Hash Tables with Open Addressing

Conflict Resolution in Hash Tables with Chaining

Internal Structure of a Hash Table

So, the outage is mitigated, now what?

Control an outage by localizing the failures

BFF - Backend for Frontend - Pattern in Microservices

Dissecting GitHub Outage - Multiple Leaders in Zookeeper Cluster

Dissecting GitHub Outage - How databases are managed in production

Best practices that make microservices integration easy

Dissecting GitHub Outage - Downtime due to Rate Limiter

Dissecting GitHub Outage - When master failover failed

Things to remember while building Microservices

Why should we have a standard way of building Microservices?

10 Challenges in Adopting and Implementing Microservices

What are Microservices?

Dissecting GitHub Outage - Downtime GitHub thought they avoided

API Composition Pattern in Microservices

Dissecting GitHub Outage Downtime due to creating an Index

Dissecting GitHub Outage - Repository Creation Failed due to secret scanning service

Database per Service Pattern in Microservices

So you know REST

An in-depth introduction to Rolling Deployments

Implementing Vertical Sharding

Dissecting GitHub Outage: Downtime due to an Edge Case

Why caching would not speed up Mark-and-Sweep GC?

An in-depth introduction to Blue Green Deployments

An in-depth introduction to Canary Deployments

Introduction to Remote Procedure Calls

Designing Workflows in Microservices - Orchestration vs Choreography

ALTER TABLE taking down GitHub

Tricolor Abstraction to build concurrent Garbage Collectors

Synchronous and Asynchronous Communication between Microservices

Introduction to Serverless Computing and Architecture

Mark-and-Sweep Garbage Collection Algorithm

Shared Database Pattern in Microservices

Difference between Sharding and Partitioning

How to pick a garbage collector?

How to scope a microservice?

An in-depth introduction to Rate Limiting

Engineering deep-dive into Atlassian's Mega Outage of April 2022

How to approach System Design?

Why do programming languages need garbage collection?

Here's why you should adopt microservices

Building a Robust Payments Service

Should you send payload in an HTTP GET request?

Dissecting Google Maps Outage: Cascading Failures

Implementing Distributed Transactions in Golang

Distributed Transactions to guarantee 10-min food and grocery delivery

A gentle introduction to Embedded Databases

What happens when MySQL auto-incrementing ID hits its limit?

Database reliability with write-ahead logging

Handling timeouts in a microservice architecture

How do indexes make databases read faster?

How to handle database outages?

Genetic Algorithm to solve the Knapsack Problem

Pseudorandom Number Generation using LFSR

Local and Global Indexing in Partitioned Data

Hash-Based and Range-Based Data Partitioning

An Introduction to Data Partitioning

Leaderless Replication

Conflict Resolution in a Multi-Master Setup