← Meta Interview Insights

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

SeniorPrefer not to say
Jul 2026

Summary

System design round at Meta for a software engineering role. The whole session was built around one meaty problem: design a ticketing platform with seat holds, concurrency controls, and scale. Left feeling like I covered the basics but probably didn't go deep enough on the consistency trade-offs.

Questions Asked (1)

Q1

Design an online ticketing system like Ticketmaster. Users should be able to browse events, pick specific seats, and place a temporary 5-minute hold on seats while they finish paying. The system must prevent two users from buying the same seat and handle massive traffic spikes for popular events.

System DesignTechnical Trade-offsData Modeling
Author's notes

This one sprawled in every direction.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then sketch a high-level architecture that separates read-heavy browsing from write-heavy seat locking. Focus on the seat hold mechanism using a distributed lock or atomic conditional write with TTL, and discuss scaling strategies for traffic spikes.

Pro tip: Emphasize idempotency and graceful degradation: use idempotent APIs for hold and purchase operations, and design the system to shed load or queue users during extreme spikes to protect core booking integrity.

1. Clarify Requirements and Scope

Ask about scale (events, users, seats), consistency needs, and payment integration. Define core entities: events, venues, seats, holds, orders.

2. High-Level Architecture

Propose a microservices or modular architecture with separate services for browsing (read-heavy) and booking (write-heavy). Use CDN and caching for event/seat maps.

3. Seat Hold and Concurrency Control

Design a seat hold service using a distributed lock (e.g., Redis with TTL) or atomic conditional writes in a database. Ensure holds expire after 5 minutes and are released automatically.

4. Scalability and Traffic Spikes

Address spikes with horizontal scaling, load shedding, queueing (e.g., virtual waiting room), and read replicas. Use partitioning by event to distribute load.

5. Data Model and Consistency

Define schemas for events, seats, holds, and orders. Discuss trade-offs between strong consistency (for seat locking) and eventual consistency (for browsing).

Key Points to Mention

  • Distributed locking with TTL (e.g., Redis SET with NX and EX) to prevent double booking
  • Idempotent APIs for hold and purchase to handle retries safely
  • Virtual waiting room or queue to manage traffic spikes and ensure fairness
  • Database partitioning/sharding by event ID to scale writes
  • Caching strategies for event and seat map data (CDN, Redis)
  • Graceful degradation and circuit breakers to protect core booking flow

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