← eBay Interview Insights

eBay·Backend Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jun 2026

Summary

eBay system design round focused entirely on a food delivery backend, specifically around handling the lunch and dinner rush. Pretty intense scope for a single session, they wanted depth on basically everything from order routing to payment retries.

Questions Asked (5)

Q1

Design the backend of a food delivery app, with particular focus on handling peak-hour order spikes during lunch and dinner rushes.

System DesignTechnical Trade-offs
Author's notes

This was the main question and it ate up most of the session.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then design a scalable, event-driven architecture that decouples order intake from processing. Focus on peak-hour spikes by incorporating asynchronous queues, auto-scaling, and caching, while discussing trade-offs between consistency and availability.

Pro tip: Emphasize the importance of backpressure and graceful degradation during spikes—showing you prioritize system resilience over perfect consistency demonstrates senior-level thinking.

1. Clarify Requirements and Scope

Ask questions to understand expected scale (e.g., orders per second during peak), latency requirements, consistency needs, and budget constraints. Define core entities like users, restaurants, orders, and payments.

2. High-Level Architecture

Sketch a microservices-based architecture with separate services for order intake, restaurant management, dispatch, and notifications. Use API gateways, load balancers, and CDNs for static content.

3. Peak-Hour Spike Handling

Introduce asynchronous processing with message queues (e.g., Kafka, RabbitMQ) to buffer orders. Implement auto-scaling for stateless services, and use caching (Redis) for hot data like restaurant menus and user sessions.

4. Data Storage and Consistency

Choose databases based on access patterns: NoSQL for high-throughput order writes, relational for transactional integrity. Discuss sharding, replication, and eventual consistency trade-offs.

5. Reliability and Monitoring

Design for failure with circuit breakers, retries, and idempotency. Set up monitoring (Prometheus, Grafana) and alerting for key metrics like queue depth, latency, and error rates.

Key Points to Mention

  • Asynchronous order processing with message queues to absorb spikes
  • Auto-scaling policies based on CPU/memory or custom metrics (e.g., queue length)
  • Caching strategies for read-heavy data (menus, user profiles) using Redis or Memcached
  • Database sharding and replication for scalability and high availability
  • Idempotent order submission to handle duplicate requests during retries
  • Graceful degradation: disabling non-critical features (e.g., recommendations) under load

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

Q2

How would you handle surge pricing and capacity reservation during peak demand periods?

System DesignPricing & Monetization
Author's notes

Talked about dynamic pricing adjustments and pre-reserving courier slots based on historical patterns.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the business context and requirements for surge pricing and capacity reservation, then propose a scalable, event-driven architecture that dynamically adjusts prices and reserves capacity based on real-time demand signals. Emphasize trade-offs between consistency, availability, and latency, and discuss how to handle edge cases like fairness and abuse prevention.

Pro tip: Demonstrate awareness of eBay's unique auction-based model and the need to balance surge pricing with seller/buyer fairness—mention how you'd prevent price gouging or ensure equitable access during high-demand events like limited-edition drops.

1. Clarify Requirements and Constraints

Ask about the specific use cases (e.g., auctions, buy-it-now), expected traffic patterns, latency requirements, and business rules for surge pricing and reservations. Identify non-functional requirements like scalability, consistency, and fairness.

2. Design Data Model and Pricing Engine

Propose a data model for items, pricing rules, and reservations. Outline a pricing engine that computes surge multipliers based on real-time demand (e.g., bid velocity, page views) and historical data, using a rules engine or ML model.

3. Architect for Scalability and Real-Time Updates

Describe an event-driven architecture with message queues (e.g., Kafka) to ingest demand signals, a stream processing layer (e.g., Flink) to compute dynamic prices, and a distributed cache (e.g., Redis) to serve prices and reservations with low latency.

4. Implement Capacity Reservation and Consistency

Explain how to handle reservations atomically using distributed locks or optimistic concurrency, ensuring no overselling. Discuss consistency models (e.g., eventual vs. strong) and fallback strategies during failures.

5. Address Edge Cases and Monitoring

Cover fairness (e.g., rate limiting per user), abuse prevention (e.g., bots), and graceful degradation. Outline monitoring and alerting for pricing anomalies, reservation conflicts, and system health.

Key Points to Mention

  • Event-driven architecture with Kafka for demand signals and Flink for stream processing
  • Distributed caching (Redis) for low-latency price and reservation lookups
  • Consistency mechanisms: distributed locks, optimistic concurrency, or CRDTs for reservations
  • Dynamic pricing algorithms: rule-based, ML-based, or hybrid, with real-time feedback loops
  • Fairness and abuse prevention: rate limiting, CAPTCHA, user quotas
  • Monitoring and observability: metrics, logging, tracing, and alerting for pricing and reservation systems

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

Q3

How do you mitigate hotspots caused by a single very popular restaurant or a dense geographic area getting flooded with orders?

System DesignTechnical Trade-offs
Author's notes

Genuinely enjoyed this one.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the scale and requirements, then systematically address hotspots at multiple layers: data partitioning, caching, load balancing, and asynchronous processing. Emphasize trade-offs between consistency, latency, and cost, and propose a combination of techniques like sharding by geography, read replicas, and queue-based order processing.

Pro tip: Mention that hotspots are often transient and can be mitigated with dynamic scaling and intelligent request routing, but be careful not to over-engineer; sometimes a simple cache with a short TTL solves 90% of the problem.

1. Clarify Requirements and Constraints

Ask about expected peak load, latency SLAs, consistency requirements, and budget. This shows you understand that solutions must be tailored to business needs.

2. Identify the Bottlenecks

Analyze where hotspots occur: database writes, read queries, API rate limits, or downstream services. Determine if the issue is read-heavy or write-heavy.

3. Apply Multi-Layer Mitigation Strategies

Propose solutions at different layers: caching (CDN, Redis), database sharding/replication, load balancing with consistent hashing, and asynchronous order processing via queues.

4. Discuss Trade-offs and Alternatives

Compare options like strong vs. eventual consistency, cost of scaling vs. throttling, and complexity of sharding vs. caching. Show you can make informed decisions.

5. Monitor and Adapt

Emphasize the need for real-time monitoring, auto-scaling, and dynamic rebalancing to handle hotspots as they emerge.

Key Points to Mention

  • Geographic sharding: partition data by region to distribute load and reduce cross-region traffic.
  • Caching strategies: use Redis or Memcached for hot restaurant data, with TTL and eviction policies.
  • Load balancing: consistent hashing to route requests evenly and avoid rehashing storms.
  • Asynchronous processing: queue orders (e.g., Kafka, RabbitMQ) to decouple frontend from backend and smooth spikes.
  • Database replication and read replicas: offload read traffic from the primary database.
  • Rate limiting and throttling: protect backend services from being overwhelmed, with graceful degradation.

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

Q4

Walk me through how you'd ensure reliability across partial failures, including retry strategies and idempotency for orders and payments.

System DesignAPI & Integrations
Author's notes

Blanked for a second on the payment idempotency piece specifically.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer around a layered reliability strategy: first prevent failures where possible, then detect and recover from partial failures using retries with backoff and jitter, and finally ensure correctness through idempotency and reconciliation. Use concrete examples from orders and payments to illustrate each layer, emphasizing how you avoid duplicate charges and inconsistent order states.

Pro tip: Show you understand that retries without idempotency are dangerous—especially for payments—and that the real challenge is designing for exactly-once effects in an at-least-once delivery world. Mention that you'd use idempotency keys generated by the client and stored server-side, and that you'd reconcile with external providers to catch edge cases.

1. Define failure modes and boundaries

Identify where partial failures can occur: network timeouts, service crashes, database failures, and third-party payment provider errors. Clarify which operations are idempotent by nature and which need explicit idempotency handling.

2. Design idempotent APIs and operations

For orders and payments, require a client-generated idempotency key on all mutating requests. Store the key with the operation result in a durable store, and return the same result for duplicate requests. Use database unique constraints to prevent duplicate order creation.

3. Implement retry strategies with backoff and jitter

Use exponential backoff with jitter for retries, and set a maximum retry limit. Distinguish between retryable errors (e.g., timeouts, 5xx) and non-retryable errors (e.g., 4xx). For payments, consider using a circuit breaker to avoid overwhelming a failing provider.

4. Ensure consistency with sagas or two-phase commits

For multi-step processes like order fulfillment and payment capture, use a saga pattern with compensating transactions to roll back on failure. Alternatively, use a two-phase commit if strong consistency is required, but be aware of its limitations.

5. Monitor, reconcile, and alert

Implement logging and tracing to detect partial failures. Periodically reconcile internal state with external providers (e.g., payment gateway) to catch discrepancies. Set up alerts for anomalies like high retry rates or stuck orders.

Key Points to Mention

  • Idempotency keys: client-generated unique keys stored server-side to deduplicate requests.
  • Retry strategies: exponential backoff with jitter, max retries, and distinguishing retryable vs non-retryable errors.
  • Saga pattern: for distributed transactions, with compensating actions for rollback.
  • Database constraints: unique indexes on idempotency keys or order IDs to prevent duplicates.
  • Reconciliation: periodic jobs to compare internal state with external systems (e.g., payment provider) and resolve discrepancies.
  • Circuit breakers and timeouts: to prevent cascading failures and manage partial failures gracefully.

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

Q5

What observability would you put in place, and how would you define SLOs specifically for surge periods?

Product Analytics & MetricsSystem Design
Author's notes

Honestly the part I was least prepared for.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by outlining a layered observability strategy covering metrics, logs, traces, and events, with emphasis on real-time monitoring during surge periods. Then define SLOs that are dynamic, with separate targets for normal and surge conditions, and explain how you'd measure and alert on them. Finally, tie it back to business impact and user experience.

Pro tip: During surge periods, traditional SLOs may be too strict; consider using error budgets that scale with traffic or define 'surge SLOs' with relaxed thresholds, but always communicate the trade-offs to stakeholders.

1. Identify key user journeys and business metrics

Map critical user flows (e.g., search, checkout) and the metrics that matter most during surges, such as latency, error rate, and throughput.

2. Design a multi-layered observability stack

Implement metrics (RED/USE), distributed tracing, structured logging, and real-time dashboards with anomaly detection to handle surge traffic.

3. Define SLOs with surge-specific targets

Set baseline SLOs for normal periods and separate, more lenient SLOs for surge periods, based on historical data and capacity limits.

4. Establish error budgets and alerting policies

Calculate error budgets for both normal and surge SLOs, and configure alerts that trigger when burn rates exceed thresholds, with escalation paths.

5. Iterate and communicate

Review SLO performance after each surge, adjust targets, and ensure stakeholders understand the trade-offs between reliability and cost during peak events.

Key Points to Mention

  • Use of RED (Rate, Errors, Duration) and USE (Utilization, Saturation, Errors) metrics for comprehensive monitoring.
  • Importance of distributed tracing to identify bottlenecks in microservices during high load.
  • Dynamic SLOs that adjust based on traffic patterns, with separate targets for surge periods.
  • Error budget policies that allow for controlled risk-taking during surges without violating user expectations.
  • Real-time anomaly detection and alerting to quickly respond to issues during surges.
  • Post-surge retrospectives to refine SLOs and observability based on lessons learned.

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