← Google Interview Insights

Google·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
May 2026

Summary

Google system design round for a software engineering role. One deep question that basically ate the whole session. Walked out unsure if I'd covered enough ground or just rambled for 45 minutes.

Questions Asked (1)

Q1

Design a distributed log storage system that supports append-only writes, configurable retention policies, partitioning, replication, high-throughput sequential reads, segment management, compaction, indexing, and leader/follower roles with recovery.

System DesignTechnical Trade-offsData Modeling
Author's notes

This is basically 'design Kafka from scratch' and they know it.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then outline the high-level architecture with components like brokers, partitions, and replicas. Dive into the write path (append-only segments, indexing) and read path (sequential reads, caching), then discuss replication, leader election, recovery, retention, and compaction. Emphasize trade-offs and how your design meets Google-scale reliability and performance.

Pro tip: Anchor your design around the log abstraction (like Kafka's commit log) and explicitly discuss how you'd handle failure scenarios and data durability, as Google values reliability and operational excellence.

1. Clarify Requirements and Scale

Ask about expected throughput, latency, data size, retention needs, and consistency requirements. Establish assumptions for scale (e.g., petabytes, millions of writes/sec).

2. High-Level Architecture

Sketch components: producers, brokers, partitions, replicas, metadata service, and consumers. Explain partitioning strategy and how it enables scalability.

3. Write and Read Paths

Detail append-only writes to segments, indexing (offset index, time index), and sequential reads. Discuss caching, zero-copy, and batching for high throughput.

4. Replication and Leader/Follower

Describe replication protocol (e.g., ISR), leader election, follower catch-up, and recovery from failures. Mention trade-offs between consistency and availability.

5. Retention, Compaction, and Operations

Explain retention policies (time/size-based), segment rolling, compaction (log cleaning), and monitoring. Discuss how these impact performance and storage.

Key Points to Mention

  • Partitioning for scalability and parallelism
  • Append-only segment files with offset-based indexing
  • Replication with leader/follower and ISR for durability
  • Sequential read optimization (zero-copy, page cache)
  • Retention policies and compaction strategies
  • Failure recovery and leader election mechanisms

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.