← Google Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

Google system design round, got asked to build a concert ticketing service from scratch. Pretty open-ended and I wasn't totally sure how deep to go on the backend vs the product side.

Questions Asked (1)

Q1

Design a concert ticketing service.

System DesignTechnical Trade-offsData Modeling
Author's notes

I jumped straight into the database schema and seat reservation logic, which felt right at the time, but I think I skipped over clarifying questions that would've helped a lot.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, such as expected scale, consistency needs, and peak traffic patterns. Then design a high-level architecture that separates concerns: seat inventory, order processing, payment, and notification. Finally, dive into critical components like concurrency control for seat locking and database sharding for scalability.

Pro tip: Emphasize the trade-offs between strong consistency and availability during peak sales, and propose a hybrid approach like using a distributed lock service (e.g., Chubby) for seat reservation while allowing eventual consistency for less critical data.

1. Requirements Clarification

Ask about scale (e.g., millions of users, thousands of concerts), consistency requirements (e.g., no double-booking), and latency expectations. Also clarify read vs. write patterns and peak load scenarios.

2. High-Level Design

Outline core services: event catalog, seat inventory, order service, payment, and notification. Sketch how they interact via APIs and message queues.

3. Data Modeling and Storage

Design schemas for events, venues, seats, and orders. Choose databases: e.g., relational for transactions, NoSQL for catalog, and caching for hot data.

4. Concurrency and Consistency

Address seat locking to prevent double-booking. Discuss optimistic vs. pessimistic locking, distributed locks, and idempotency for payment.

5. Scalability and Reliability

Explain sharding by event or venue, read replicas, caching strategies, and handling failures with retries and circuit breakers.

Key Points to Mention

  • Seat reservation with distributed locking (e.g., using Redis or Chubby) to handle concurrent bookings.
  • Database sharding strategy (e.g., by event ID or geographic region) to distribute load.
  • Caching frequently accessed data (e.g., event details, seat maps) with TTL and invalidation strategies.
  • Idempotent payment processing to avoid double charges and ensure exactly-once semantics.
  • Handling peak traffic with queue-based load leveling and auto-scaling.
  • Trade-offs between strong consistency (for inventory) and eventual consistency (for analytics).

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