Design a Distributed Scheduler with At-Most-Once Runs

Read the full interview experience this question came from →

Quick Overview

Design a distributed scheduler around strict at-most-once run starts, durable identities, ambiguous crashes, SLA failures, queue recovery, logs, and notification outboxes.

Design a Distributed Scheduler with At-Most-Once Runs

Company: Robinhood

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a distributed background-job scheduler with one-time and recurring jobs, an execution SLA, logs, cancellation, and subscriber notifications. The central requirement is **at-most-once execution per scheduled run**. ### Constraints & Assumptions Keep that requirement explicit when discussing crashes and retries. A run that may have started cannot simply be re-executed under a new lease while still claiming strict at-most-once execution. Explain the availability and completion tradeoff, and clarify whether the product actually means at-most-once execution or deduplicated effects. ### Clarifying Questions Does “execution” mean starting application code or committing an external effect? Is a lost or unknown run acceptable? Can a retry be a new scheduled run? Does the SLA measure start or completion? Must subscribers recover missed notifications? ### What a Strong Answer Covers APIs for create/status/cancel/history, job and execution identities, durable claims, queue failure behavior, deadline reporting, logs, and a notification outbox. Justify a Redis queue or any alternative instead of assuming it is sufficient for durability. ### Follow-up Questions What happens if a worker dies immediately before or after beginning execution? What if the queue loses messages or the database commit times out? How do you push or broadcast updates to subscribers without losing durable status history?

Overview: Design a distributed scheduler around strict at-most-once run starts, durable identities, ambiguous crashes, SLA failures, queue recovery, logs, and notification outboxes.

Read the full Robinhood Software Engineer interview experience this question came from

|Home/System Design/Robinhood
Robinhood logo
Robinhood
Apr 14, 2026
hardSoftware EngineerOnsiteSystem Design
0
0

Design a distributed background-job scheduler with one-time and recurring jobs, an execution SLA, logs, cancellation, and subscriber notifications. The central requirement is at-most-once execution per scheduled run.

Constraints & Assumptions

Keep that requirement explicit when discussing crashes and retries. A run that may have started cannot simply be re-executed under a new lease while still claiming strict at-most-once execution. Explain the availability and completion tradeoff, and clarify whether the product actually means at-most-once execution or deduplicated effects.

Clarifying Questions Guidance

Does “execution” mean starting application code or committing an external effect? Is a lost or unknown run acceptable? Can a retry be a new scheduled run? Does the SLA measure start or completion? Must subscribers recover missed notifications?

What a Strong Answer Covers Guidance

APIs for create/status/cancel/history, job and execution identities, durable claims, queue failure behavior, deadline reporting, logs, and a notification outbox. Justify a Redis queue or any alternative instead of assuming it is sufficient for durability.

Follow-up Questions Guidance

What happens if a worker dies immediately before or after beginning execution? What if the queue loses messages or the database commit times out? How do you push or broadcast updates to subscribers without losing durable status history?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...