Skip to main content

Durable sleep use case

durable sleep banner

Start a new project using a durable sleep use case example.

Python SDK

Durable sleep use case

Clone this repo

TypeScript SDK

Durable sleep use case

Clone this repo

Problem

A business process may need to sleep for a period much longer than the typical lifetime of a process.

Since a process is more likely to crash the longer it is alive, and if a business process needs to suspend (or "sleep") for days, weeks, or even years, then developers are often forced to use cron jobs as a means to reawaken long-sleeping processes.

This leads to complexity that is hard to reason about, test, and rely on.

Solution

Resonate enables developers to sleep directly in their workflows without leaving the process running idle, reducing implementation complexity while ensuring the business process can survive across process crashes.

Quick example

@resonate.register
def sleeping_workflow(ctx: Context, seconds: int):

yield ctx.sleep(seconds)

# ...