PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Databricks

Design a generic key-value store

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's skills in API and system design, focusing on type-safe generic interfaces, modular serialization and storage layers, error handling strategies, and features such as versioning and TTL.

  • medium
  • Databricks
  • System Design
  • Software Engineer

Design a generic key-value store

Company: Databricks

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

Design a key-value store with a generic, user-friendly API. Define the data model and core operations (put, get, delete, exists, batch). Explain how you would expose generics in the interface (e.g., in Java), maintain type safety, and design for reusability. Describe error handling, versioning/TTL options, and how you would evolve an in-memory prototype to persistent storage.

Quick Answer: This question evaluates a candidate's skills in API and system design, focusing on type-safe generic interfaces, modular serialization and storage layers, error handling strategies, and features such as versioning and TTL.

Related Interview Questions

  • Design a Book Price Aggregator - Databricks (medium)
  • Design a stock order manager - Databricks (medium)
  • Design an Online Bookstore - Databricks (hard)
  • Design a Hierarchical File System - Databricks (hard)
  • Design a Visa-like payment processing system - Databricks (hard)
Databricks logo
Databricks
Sep 6, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
16
0

Design a Generic, Type-Safe Key-Value Store API

Context

You're asked to design a reusable key-value store with a generic, user-friendly API suitable for local in-memory use and evolvable to persistent storage. Assume Java for the typed API, but design decisions should be language-agnostic where possible.

Requirements

  1. Define the data model and core operations:
    • put, get, delete, exists, batch
  2. Expose generics in the interface (e.g., Java), while maintaining type safety.
  3. Design for reusability and layering (e.g., pluggable serialization and storage engines).
  4. Describe error handling strategy.
  5. Discuss versioning and TTL options (optimistic concurrency control, expirations).
  6. Outline how to evolve an in-memory prototype into a persistent implementation.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Databricks•More Software Engineer•Databricks Software Engineer•Databricks 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.