Handle Upstream Failures in a Payment-Calculation Service
Company: DoorDash
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Technical Screen
A payment-calculation service depends on upstream delivery events and a time-dependent peak-period configuration. What should it do when an upstream dependency fails or required information arrives late?
### Constraints & Assumptions
The reported coding exercise involved delivery-worker payment and a peak-period follow-up, but its event schema, rate formula, and peak-window rules were not supplied. This question retains the explicit upstream-failure discussion. Treat the calculation formula as a versioned business rule supplied separately; do not invent a payment amount or silently substitute missing data with zero.
### Clarifying Questions
Which inputs are authoritative? Is the unavailable operation a read or a possibly completed write? Can the service return pending status? What freshness, reconciliation, and correction requirements apply?
### What a Strong Answer Covers
Distinguish incomplete data from a valid zero, use bounded retries and idempotency, preserve enough evidence for replay, and reconcile late inputs without duplicate financial effects.
### Follow-up Questions
When is a cached peak-period configuration acceptable? What if a timeout occurs after an external service may already have accepted a write? How do you correct a previously finalized calculation after a late event?
Overview: Handle payment-calculation dependency failures with pending states, versioned inputs, bounded retries, idempotent effects, late-event adjustments, and reconciliation.
A payment-calculation service depends on upstream delivery events and a time-dependent peak-period configuration. What should it do when an upstream dependency fails or required information arrives late?
Constraints & Assumptions
The reported coding exercise involved delivery-worker payment and a peak-period follow-up, but its event schema, rate formula, and peak-window rules were not supplied. This question retains the explicit upstream-failure discussion. Treat the calculation formula as a versioned business rule supplied separately; do not invent a payment amount or silently substitute missing data with zero.
Clarifying Questions Guidance
Which inputs are authoritative? Is the unavailable operation a read or a possibly completed write? Can the service return pending status? What freshness, reconciliation, and correction requirements apply?
What a Strong Answer Covers Guidance
Distinguish incomplete data from a valid zero, use bounded retries and idempotency, preserve enough evidence for replay, and reconcile late inputs without duplicate financial effects.
Follow-up Questions Guidance
When is a cached peak-period configuration acceptable? What if a timeout occurs after an external service may already have accepted a write? How do you correct a previously finalized calculation after a late event?