Policies
Policies govern how Wakeplane handles concurrent execution, missed runs, timeouts, and failures. They are defined per schedule and apply to every occurrence.
Overlap Policy
Section titled “Overlap Policy”forbid (default)
Section titled “forbid (default)”The new run is not claimed until the active count drops below max_concurrency. The pending run waits in the queue.
New runs start regardless of how many are already active, up to max_concurrency.
queue_latest
Section titled “queue_latest”All pending runs except the most recent one are skipped. Only the latest pending run is dispatched when capacity opens.
replace
Section titled “replace”Active runs receive a cancellation signal. All pending runs except the most recent are skipped. The latest pending run is dispatched once the active run exits.
replace is cooperative and best-effort. If the active executor does not stop promptly, behavior degrades toward queue_latest.
Misfire Policy
Section titled “Misfire Policy”run_once_if_late (default)
Section titled “run_once_if_late (default)”Run exactly one overdue occurrence, even if multiple were missed.
Skip all overdue occurrences.
catch_up
Section titled “catch_up”Materialize a run for every missed occurrence.
Timeout
Section titled “Timeout”policy.timeout_seconds sets a deadline for the executor. Default: 300 seconds.
Max Concurrency
Section titled “Max Concurrency”policy.max_concurrency sets the maximum number of simultaneously active runs for a schedule. Default: 1.
retry: max_attempts: 5 strategy: exponential initial_delay_seconds: 30 max_delay_seconds: 900Retries use exponential backoff and exhausted runs become dead letters. Cancellation is not retried.
Policy Interaction Example
Section titled “Policy Interaction Example”A schedule with overlap: forbid, misfire: run_once_if_late, and retry.max_attempts: 3 will materialize one overdue run after an outage, retry failures with backoff, and dead-letter the occurrence after the retry budget is exhausted.