Skip to content

Policies

Policies govern how Wakeplane handles concurrent execution, missed runs, timeouts, and failures. They are defined per schedule and apply to every occurrence.

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.

All pending runs except the most recent one are skipped. Only the latest pending run is dispatched when capacity opens.

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.

Run exactly one overdue occurrence, even if multiple were missed.

Skip all overdue occurrences.

Materialize a run for every missed occurrence.

policy.timeout_seconds sets a deadline for the executor. Default: 300 seconds.

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: 900

Retries use exponential backoff and exhausted runs become dead letters. Cancellation is not retried.

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.