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.
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).
When a function calls another function in a different Application Node, it is considered a Remote Function Invocation (RFI).
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.
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.