PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/LinkedIn

Design a scalable key-value store

Last updated: Mar 29, 2026

Quick Overview

This system design question evaluates expertise in distributed systems and scalable storage architecture within the System Design domain, focusing on data partitioning, replication, durability, consistency models, and low-latency operation.

  • medium
  • LinkedIn
  • System Design
  • Software Engineer

Design a scalable key-value store

Company: LinkedIn

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

# System Design: Distributed Key-Value Store Design a distributed key-value (KV) storage service for a large-scale backend system. The service should expose a simple interface for clients to: - Put a value by key - Get a value by key - Optionally delete a key Assume: - Keys are strings up to 1 KB - Values are blobs up to 1 MB - Total data size can reach tens of TB - Target read and write latency at the 95th percentile is under 10 ms within a region - The system must be highly available and able to tolerate machine failures ### Requirements Clarify and then design for the following functional and non-functional requirements: **Functional requirements** - API: - put(key, value) - get(key) -> value or key-not-found - delete(key) - Support for basic conditional updates is a plus (for example, put-if-absent or compare-and-set). **Non-functional requirements** - High availability: service should keep working despite node failures - Horizontal scalability: must handle growth in traffic and data volume by adding machines - Durability: once acknowledged, writes should not be lost after a single-node failure - Reasonable consistency: you can choose strong or eventual consistency but must justify the trade-offs - Low latency for read and write operations ### What to cover in your design Provide a system design that addresses: 1. Data model and external API 2. High-level architecture and main components (client, stateless frontends, storage nodes, metadata service, etc.) 3. Data partitioning and placement strategy across nodes (for example, consistent hashing, sharding) 4. Replication strategy for fault tolerance (for example, primary-replica, quorum-based replication) 5. Consistency model choice and how reads and writes flow through the system 6. Storage layer design (in-memory vs on-disk, log-structured storage, write-ahead log, compaction) 7. Handling node failures and recovery (re-replication, leader election, rebalancing shards) 8. Scaling strategies (adding or removing nodes, rebalancing partitions) 9. Optional optimizations such as: - Caching strategies - Hot key handling - Multi-data-center replication and disaster recovery Explain your assumptions and walk through read and write paths in your design. Highlight key trade-offs (for example, consistency vs availability) and how your design meets the stated requirements.

Quick Answer: This system design question evaluates expertise in distributed systems and scalable storage architecture within the System Design domain, focusing on data partitioning, replication, durability, consistency models, and low-latency operation.

Related Interview Questions

  • Review a Web Application Architecture - LinkedIn (easy)
  • Scale a Distributed Randomized Multiset - LinkedIn (medium)
  • Design a Top-K Ranking Service - LinkedIn (easy)
  • Design a Global Calendar Service - LinkedIn (medium)
  • Design a malicious-URL checking service using an isMalicious API - LinkedIn (medium)
LinkedIn logo
LinkedIn
Dec 8, 2025, 8:36 PM
Software Engineer
Onsite
System Design
10
0

System Design: Distributed Key-Value Store

Design a distributed key-value (KV) storage service for a large-scale backend system.

The service should expose a simple interface for clients to:

  • Put a value by key
  • Get a value by key
  • Optionally delete a key

Assume:

  • Keys are strings up to 1 KB
  • Values are blobs up to 1 MB
  • Total data size can reach tens of TB
  • Target read and write latency at the 95th percentile is under 10 ms within a region
  • The system must be highly available and able to tolerate machine failures

Requirements

Clarify and then design for the following functional and non-functional requirements:

Functional requirements

  • API:
    • put(key, value)
    • get(key) -> value or key-not-found
    • delete(key)
  • Support for basic conditional updates is a plus (for example, put-if-absent or compare-and-set).

Non-functional requirements

  • High availability: service should keep working despite node failures
  • Horizontal scalability: must handle growth in traffic and data volume by adding machines
  • Durability: once acknowledged, writes should not be lost after a single-node failure
  • Reasonable consistency: you can choose strong or eventual consistency but must justify the trade-offs
  • Low latency for read and write operations

What to cover in your design

Provide a system design that addresses:

  1. Data model and external API
  2. High-level architecture and main components (client, stateless frontends, storage nodes, metadata service, etc.)
  3. Data partitioning and placement strategy across nodes (for example, consistent hashing, sharding)
  4. Replication strategy for fault tolerance (for example, primary-replica, quorum-based replication)
  5. Consistency model choice and how reads and writes flow through the system
  6. Storage layer design (in-memory vs on-disk, log-structured storage, write-ahead log, compaction)
  7. Handling node failures and recovery (re-replication, leader election, rebalancing shards)
  8. Scaling strategies (adding or removing nodes, rebalancing partitions)
  9. Optional optimizations such as:
    • Caching strategies
    • Hot key handling
    • Multi-data-center replication and disaster recovery

Explain your assumptions and walk through read and write paths in your design. Highlight key trade-offs (for example, consistency vs availability) and how your design meets the stated requirements.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More LinkedIn•More Software Engineer•LinkedIn Software Engineer•LinkedIn System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.