Skip to main content

Resonate Call Graph

What is a Resonate Call Graph?

A Resonate Call Graph is the full set of function executions and Durable Promises that are required to complete the end-to-end business logic in an application, across all Application Nodes.

To illustrate this, consider a single function execution. With Resonate, all function executions pair with a Durable Promise.

Single function execution and Durable promise pair

Each Durable Promise has a unique ID and maps to an invocation of a function. If the same ID is used, it is considered the same invocation.

When a function calls another function within the same Application Node, it is considered a Local Function Invocation (LFI).

Diagram of an LFI Call Graph

When a function calls another function in a different Application Node, it is considered a Remote Function Invocation (RFI).

Diagram of an RFI Call Graph

A Resonate Application can make use of both LFIs and RFIs, and thus a Resoante Call Graph can span just one or many Application Nodes.

Diagram of a Resonate Call Graph spanning multiple Application Nodes

Root promises​

There are two types of root promises. The first is the root promise of an Application Node (process), and the second is the root promise of a Call Graph.

An Application Node root promise (also known as the process) is the promise associated with the first execution in an Application Node. In other words, this is the execution invoked by resonate.run().

A Call Graph root promise is the promise associated with the first execution in a Call Graph. This execution is also invoked by resonate.run(), but it is on the "edge" and is typically the entry point into the application.

Diagram of a Resonate Call Graph with labeled root promises