Design scheduled payments and cancellation
Company: Coinbase
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Take-home Project
Design a scheduled payments service that lets users create, list, execute, and cancel future-dated payments. Specify REST/gRPC APIs, idempotency keys, authorization, and validation. Propose a scheduler architecture (e.g., time-indexed buckets, distributed delayed queues) that ensures exactly-once execution and ledger correctness. Address time zones and daylight savings, retries with backoff, race conditions between execution and cancellation, deduplication, poison message handling, monitoring/alerting, and backfilling missed jobs after outages. Provide the data model and concurrency control strategy.
Quick Answer: This question evaluates a candidate's ability to design a reliable scheduled‑payments backend, testing competencies in distributed systems architecture, data modeling, idempotent API design, concurrency control, and operational reliability with strong ledger correctness.