SOHIL LADHANI
  • Menu ▾
    • About
  • About

Optimistic vs Pessimistic Concurrency: Locks vs Versions

2026-02-27

Two-Phase Commit: The Original Distributed Transaction

2026-02-26

Input Validation and Abuse Prevention in Distributed Systems

2026-02-25

Approximate Counting: HyperLogLog and Count-Min Sketch

2026-02-24

SLOs and Error Budgets: When Good Enough is a Number

2026-02-23

Base62 Encoding: Turning Numbers into Short Strings

2026-02-22

Distributed ID Generation: Snowflake and Friends

2026-02-21

Event Aggregation: When 47 Notifications Become One

2026-02-20

Social Graphs at Scale: Storing Relationships in MySQL

2026-02-19

Relevance Scoring: Why Chronological Order Breaks Down

2026-02-18

Pre-Signed URLs: Uploading Files Without Touching Your Servers

2026-02-17

Presence Systems: Who’s Online and How You Know

2026-02-16

Cursor-Based Pagination: Why Offset Breaks at Scale

2026-02-15

Fan-Out Strategies: Write-Time vs Read-Time

2026-02-14

WebSockets vs Long Polling: Choosing a Real-Time Transport

2026-02-13

Read Replicas: Hidden Consistency Traps

2026-02-12

Thundering Herd

2026-02-11

Structured Logging in Distributed Systems

2026-02-10

Database Migrations Without Downtime

2026-02-09

Tail Latency: The P99 Problem

2026-02-08

Ordering Guarantees in Event-Driven Systems

2026-02-07

Dead Letter Queues

2026-02-06

Making Consumers Idempotent

2026-02-05

Exactly-Once Delivery is a Lie

2026-02-04

Graceful Shutdown: Dying Without Dropping Requests

2026-02-03

Timeouts: The Hardest Easy Problem

2026-02-02

Distributed Locks: When One Process Must Win

2026-02-01

Connection Pooling: Why Opening Connections Is Expensive

2026-01-31

Multi-Level Caching: L1, L2, and Beyond

2026-01-30

Cache Stampede: When Expiry Causes Chaos

2026-01-29
< [Newer posts] :: [Older posts] >
© 2026 by SOHIL LADHANI