PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/DoorDash

Design a resilient dasher payment system

Last updated: Apr 16, 2026

Quick Overview

This question evaluates system design and distributed-systems competencies including event-driven architecture, ingestion semantics (idempotency and delivery guarantees), high-throughput data modeling, streaming versus batch payout computation, data quality and remediation workflows, API and timezone handling, and operational monitoring.

  • hard
  • DoorDash
  • System Design
  • Software Engineer

Design a resilient dasher payment system

Company: DoorDash

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design an end-to-end payment system for delivery drivers (Dashers) that computes payouts from order lifecycle events. The event stream contains ACCEPT(orderId, dasherId, timestamp) and FULFILL(orderId, dasherId, timestamp) records. Requirements: assume the inputs to the calculation job are valid for the happy path; proactively discuss how you would detect and remediate data loss or corruption, such as when a FULFILL arrives without a prior ACCEPT, an ACCEPT has no subsequent FULFILL, duplicate events, or out-of-order delivery. Describe data models, storage choices, and indexing to support high write throughput and efficient payout queries per dasher and pay period. Explain idempotency, deduplication, and exactly-once versus at-least-once semantics for event ingestion. Outline batch versus streaming computation of payouts, backfills, and reconciliation. Define APIs for event ingestion and for querying a dasher’s payout for a given local pay period, and how you would handle timezone and DST. Discuss monitoring, alerting, and correctness checks, and be explicit about trade-offs and consistency guarantees.

Quick Answer: This question evaluates system design and distributed-systems competencies including event-driven architecture, ingestion semantics (idempotency and delivery guarantees), high-throughput data modeling, streaming versus batch payout computation, data quality and remediation workflows, API and timezone handling, and operational monitoring.

Related Interview Questions

  • Design a resilient bootstrap API - DoorDash (medium)
  • Design Real-Time Driver Pay Aggregation - DoorDash (hard)
  • Design personalized restaurant search and recommendations - DoorDash (medium)
  • Design Food Ratings and Driver Payouts - DoorDash (medium)
  • Design a Customer Review Page - DoorDash (medium)
DoorDash logo
DoorDash
Sep 6, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
50
0

System Design: End-to-End Payouts from Order Lifecycle Events

You are designing a system that computes delivery driver (Dasher) payouts from an event stream of order lifecycle events. The stream includes only two event types:

  • ACCEPT(orderId, dasherId, timestamp)
  • FULFILL(orderId, dasherId, timestamp)

Assume the happy path input is valid (each order is accepted then fulfilled by the same dasher exactly once in-order). You must design for scale (high write throughput) and correctness, and proactively address failure modes.

Requirements

  1. Event ingestion and semantics
    • Define ingestion semantics for ACCEPT and FULFILL events.
    • Explain idempotency, deduplication, and trade-offs among exactly-once vs at-least-once delivery.
  2. Data models and storage
    • Propose data models to support:
      • High write throughput for raw events and derived state.
      • Efficient payout queries per dasher and pay period.
      • Backfills and reprocessing.
    • Specify storage choices (e.g., event log, OLTP/NoSQL, data lake), partitioning, and indexing.
  3. Computation of payouts
    • Describe how payouts are computed from the lifecycle (e.g., payout triggered at FULFILL, adjustments, etc.).
    • Outline batch vs streaming computation, how to finalize a pay period, and how to support backfills and reconciliation.
  4. Data quality and remediation
    • Proactively detect and remediate data loss/corruption:
      • FULFILL arrives without a prior ACCEPT.
      • ACCEPT has no subsequent FULFILL.
      • Duplicate events.
      • Out-of-order delivery.
    • Define SLAs, dead-letter queues, and correction strategies.
  5. APIs
    • Define APIs for:
      • Event ingestion (ACCEPT/FULFILL).
      • Querying a dasher’s payout for a given local pay period.
    • Explain handling of timezone and Daylight Saving Time (DST).
  6. Monitoring, alerting, and correctness
    • Define key metrics, alerts, and correctness checks.
    • Be explicit about trade-offs and consistency guarantees.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

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