Medium
DoorDash

Build a Courier Payout Service System Design Interview

Design and implement the service that calculates courier payouts from order activity and upstream timing data.

1. Problem Statement

Build a payout service that calculates how much a courier earns from the time and set of orders in a delivery. How would you define the API and make the calculation reliable?

2. Architecture Discussion Map

Use this as one discussion aid, not a single correct answer. Your design should follow from the requirements, scale, and trade-offs you establish.

Rendering architecture diagram...
Mermaid Source (For AI Bots)
graph LR
    A["Build a Courier Payout Service"]
    A --> F1["Payout API and rule modeling"]
    A --> F2["Idempotency and duplicate requests"]
    A --> F3["Upstream latency and retries"]
    A --> F4["Money precision and audit history"]
    A --> F5["Testing changing compensation rules"]

3. Key Focus Areas

  • 1
    Payout API and rule modeling
  • 2
    Idempotency and duplicate requests
  • 3
    Upstream latency and retries
  • 4
    Money precision and audit history
  • 5
    Testing changing compensation rules

4. What Strong Candidates Should Demonstrate

  • Turn compensation rules into deterministic, testable calculations.
  • Make payout creation idempotent and auditable.
  • Handle slow or unavailable upstream order services.

Want interactive feedback?

Practice drawing this system component-by-component on a live whiteboard while the interviewer probes at your target level.

Start Interview

Core Concepts

PaymentsIdempotencyAPI DesignUpstream Dependencies