Database Fundamentals

Databases Introduction - System Design Fundamentals

Introduction to databases for system design covering data storage, retrieval, relational databases, NoSQL, and choosing the right database for your application.

December 10, 2022 · 8 min · 1689 words · Vijay Krishnavanshi
System Design Interview Preparation

What is a System Design Interview

Complete guide to understanding system design interviews, what interviewers expect, and how to prepare effectively for distributed systems and scalability questions.

October 16, 2022 · 7 min · 1427 words · Vijay Krishnavanshi
NoSQL Databases

Databases - NoSQL Fundamentals

Complete guide to NoSQL databases including document stores, key-value stores, column-family databases, and graph databases for unstructured data.

December 11, 2022 · 6 min · 1236 words · Vijay Krishnavanshi
Database Resiliency

Database Resiliency - Replication and Disaster Recovery

Complete guide to database resiliency covering replication (master-slave, multi-master), backup strategies, and disaster recovery for system design interviews.

December 23, 2022 · 8 min · 1668 words · Vijay Krishnavanshi
Database Scalability

Database Scalability - Sharding and Partitioning

Complete guide to database scalability covering sharding strategies, partitioning, consistent hashing, and horizontal vs vertical scaling for system design.

December 13, 2024 · 10 min · 1992 words · Vijay Krishnavanshi
DNS - Domain Name System

Domain Name System (DNS) Explained

Complete guide to understanding DNS (Domain Name System), how it works as the internet’s phonebook, DNS architecture, and resource record types for system design interviews.

November 21, 2022 · 8 min · 1520 words · Vijay Krishnavanshi
System Design Fundamentals

What is System Design? Understanding the Fundamentals

Introduction to system design fundamentals covering core concepts, design principles, thinking patterns, and the philosophy behind building large-scale systems.

October 26, 2022 · 2 min · 284 words · Vijay Krishnavanshi
Transactional Outbox Pattern Architecture Diagram

Engineering Reliability: Navigating the Trade-offs of the Transactional Outbox Pattern

In my career spanning financial market data platforms, telecom systems, insurance quoting systems and energy billing, I’ve come to appreciate that the craft of true software engineering isn’t about avoiding complexity, it is about choosing the right kind of complexity. In the world of event-driven architectures (EDA), when a microservice needs to change its state and notify the rest of the world of this event, it faces a fundamental engineering challenge, known as the Dual Write Problem. This is the Achilles’ heel of distributed systems: ensuring that a local database update and an external event publication are an atomic pair. This operation has to be atomic. The write-to-the-database and the event publication has to be either both successful or both fail. One cannot succeed on its own as it would break consistency. ...

September 8, 2025 · 6 min · 1151 words · eakangk
CDN System Design

Design a Content Delivery Network (CDN)

Complete CDN design walkthrough covering architecture, edge servers, caching policies, content propagation, cache invalidation, and serving content globally at scale.

December 21, 2024 · 3 min · 458 words · Vijay Krishnavanshi
Key-Value Store Design

Design a Distributed Key-Value Store

Complete key-value store design covering requirements, API design, consistent hashing, data partitioning, replication strategies, failure handling, and scaling.

December 21, 2024 · 4 min · 655 words · Vijay Krishnavanshi