PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Microsoft

Design a resource change tracking database

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design and distributed-systems competencies focused on change-data capture, event-driven architecture, correctness of diffs, ordering, idempotency, auditing, and scalable modeling of JSON-based resources.

  • medium
  • Microsoft
  • System Design
  • Software Engineer

Design a resource change tracking database

Company: Microsoft

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

## Scenario You are building part of an Azure-like cloud control plane. Resources (VMs, networks, storage accounts, etc.) are stored as JSON documents and are updated frequently. ## Task Design a **Resource Change Database** / system that: 1. Captures every change to a resource (create/update/delete). 2. Emits a **notification/event** after a change occurs. 3. Downstream consumers can use the notification to **query the “diff”** (what changed between the old and new versions) and store that diff for later auditing/search. ## Requirements - **Correctness:** Diffs must correspond to the actual committed change. - **Ordering:** For a given resource, changes should be processed in order. - **Idempotency:** Duplicate notifications should not create duplicate diff records. - **Query:** Support querying change history by resource ID and time range; optionally filter by fields changed. - **Scale:** Assume high write volume (control-plane scale) and many resource types. ## Clarifications you may decide - How diffs are represented (JSON Patch, field-level records, full before/after snapshots). - Retention policy (e.g., keep 90 days of diffs). - Multi-region requirements and latency SLOs.

Quick Answer: This question evaluates system design and distributed-systems competencies focused on change-data capture, event-driven architecture, correctness of diffs, ordering, idempotency, auditing, and scalable modeling of JSON-based resources.

Related Interview Questions

  • Design A Scalable Web Crawler - Microsoft (medium)
  • Design User Re-engagement Notifications - Microsoft (medium)
  • Design a typeahead search service - Microsoft (hard)
  • Design a Secure Copilot API - Microsoft
  • Design a URL Shortener - Microsoft (hard)
Microsoft logo
Microsoft
Jan 22, 2026, 12:00 AM
Software Engineer
Onsite
System Design
3
0
Loading...

Scenario

You are building part of an Azure-like cloud control plane. Resources (VMs, networks, storage accounts, etc.) are stored as JSON documents and are updated frequently.

Task

Design a Resource Change Database / system that:

  1. Captures every change to a resource (create/update/delete).
  2. Emits a notification/event after a change occurs.
  3. Downstream consumers can use the notification to query the “diff” (what changed between the old and new versions) and store that diff for later auditing/search.

Requirements

  • Correctness: Diffs must correspond to the actual committed change.
  • Ordering: For a given resource, changes should be processed in order.
  • Idempotency: Duplicate notifications should not create duplicate diff records.
  • Query: Support querying change history by resource ID and time range; optionally filter by fields changed.
  • Scale: Assume high write volume (control-plane scale) and many resource types.

Clarifications you may decide

  • How diffs are represented (JSON Patch, field-level records, full before/after snapshots).
  • Retention policy (e.g., keep 90 days of diffs).
  • Multi-region requirements and latency SLOs.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

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