PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/DoorDash

Design payment and delivery services for dasher payouts

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design competencies around event-driven architecture, API and schema design, data modeling, consistency and reconciliation strategies, time-ordering and idempotency, reliability, and integration/versioning in the payments and delivery domain, and is categorized under System Design.

  • hard
  • DoorDash
  • System Design
  • Software Engineer

Design payment and delivery services for dasher payouts

Company: DoorDash

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

Design and implement two services, Delivery and Payment. The Delivery service exposes delivery events with fields {dasherId, deliveryId, timestamp, status}, where status ∈ {accepted, cancelled, fulfilled}. The Payment service consumes Delivery data and computes earnings per dasher. Define and justify: 1) APIs/interfaces between services (sync vs. async) and request/response schemas; 2) The payout rules (what gets paid on accepted/fulfilled, how cancellations affect pay) and how Payment calculates earnings for a dasher, including totals over a time window and per-delivery breakdowns; 3) Time handling: representation of timestamp, time zones, ordering of events, and how to deal with late or out-of-order events; 4) Data modeling and storage (tables/indexes or in-memory structures) to support ingestion, deduplication, idempotency keys, querying by dasherId and time range, and efficient recalculation; 5) Reliability: error handling, retries, timeouts, circuit breakers—show where you would add try/catch, logging, and metrics; 6) Consistency and reconciliation strategy (e.g., eventual consistency, exactly-once vs. at-least-once semantics, backfill jobs); 7) Service decoupling approaches (message bus, contracts, versioning, backward compatibility) and testing strategies; 8) What the Payment API should return for a typical request (e.g., total-to-date, time-bounded totals, per-delivery line items) and why. If time permits, sketch key classes for both services and core methods for ingesting events and calculating payouts.

Quick Answer: This question evaluates system design competencies around event-driven architecture, API and schema design, data modeling, consistency and reconciliation strategies, time-ordering and idempotency, reliability, and integration/versioning in the payments and delivery domain, and is categorized under System Design.

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
Aug 12, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
20
0

System Design: Delivery and Payment Services for Dasher Earnings

Context

You are designing two services:

  • Delivery service emits delivery lifecycle events.
  • Payment service consumes those events and computes dasher earnings and exposes query APIs.

Delivery events have fields {dasherId, deliveryId, timestamp, status}, where status ∈ {accepted, cancelled, fulfilled}.

Tasks

Design and justify the following:

  1. APIs/interfaces between services (sync vs. async) and request/response schemas.
  2. Payout rules (what gets paid on accepted/fulfilled, how cancellations affect pay) and how Payment calculates earnings for a dasher, including:
    • Totals over a time window.
    • Per-delivery breakdowns.
  3. Time handling: representation of timestamp, time zones, ordering of events, and how to deal with late or out-of-order events.
  4. Data modeling and storage (tables/indexes or in-memory structures) to support ingestion, deduplication, idempotency keys, querying by dasherId and time range, and efficient recalculation.
  5. Reliability: error handling, retries, timeouts, circuit breakers—show where to add try/catch, logging, and metrics.
  6. Consistency and reconciliation strategy (e.g., eventual consistency, exactly-once vs. at-least-once semantics, backfill jobs).
  7. Service decoupling approaches (message bus, contracts, versioning, backward compatibility) and testing strategies.
  8. What the Payment API should return for a typical request (e.g., total-to-date, time-bounded totals, per-delivery line items) and why.

If time permits, sketch key classes for both services and core methods for ingesting events and calculating payouts.

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.