Skip to main content

Sequential programming model

A sequential programming model allows developers to write function calls in a straightforward, linear order, making the program’s flow easy to understand. This simplicity lets you capture the entire application flow in a single function, which enhances comprehension and collaboration for developers crafting or contributing to the application’s logic.

However, sequential programming becomes challenging when dealing with distributed systems or tasks that require concurrency. Flaky endpoints, long-running processes, or sequences prone to crashes before completion can complicate this model. Adding parallel or concurrent operations further increases complexity, making it harder to manage and debug.

Resonate addresses these challenges by reintroducing the benefits of sequential programming while solving for distribution and concurrency. With just a few elegant syntax enhancements, Resonate empowers developers to write holistic, intuitive code that seamlessly handles complex, distributed workloads. At its core is the concept of Distributed Async Await, based on familiar constructs like functions and promises.

Unlike normal promises, Distributed Async Await promises are durable, meaning they persist even through process crashes or interruptions. This ensures your application remains resilient and reliable, even under distributed or concurrent workloads.

Here’s an example of what programming with Resonate looks like:

fn () {
await step1();
await step2();
await step3();
await step4();
}

If you’ve worked with single-node applications, this style will feel familiar: readable, easy to reason about, and straightforward. With Resonate, you can write similar code for distributed systems, and the platform ensures each step executes reliably—even if they run on different Application Nodes.

Get started using one of the following quickstart tutorials:

Or jump right into the feature development guides:

The main difference between normal promises and Resonate's promises, is that Resonate's promises are durable.

With Resonate, you don't have to worry about learning to use special primitives like Workflows or Activities, just functions and promises.