Skip to content

Timers

sleep is durable time. The runtime records a timer command and wakes replay when it fires. Do not call Future.delayed or read DateTime.now() in workflow code.

dart
await flow.sleep(const Duration(hours: 24), id: 'remind');

Timer due time is computed from replay decision time, not from a worker's wall clock after a restart. Recovery scans fire due timers and expire bounded user tasks.

JSON documents use a timer step with a duration. The compiler rejects malformed durations.

See Also