Resonate Application Node
What is a Resonate Application Node?
A Resonate Application Node can be described as a deployed bundle of code that runs in a single process and has at least one top-level function registered with and run by resonate.run()
and encapsulates all subsequent local function executions.
We recommend building Application Nodes with a Resonate SDK.
An Application Node does not require a connection to a Resonate Server. It can run without a connection and use in-memory storage for Durable Promises and thus still benefit from automatic function execution retries.
However, for an Application Node to recover its Call Graph after a process crash, or for the Call Graph to resume on another Application Node, it needs to connect to a Resonate Server so that Durable Promises can be stored in a database.
If there is a need to have a Call Graph to recover on another Application Node, or to have fan-out fan-in execution to handle throughput, you can deploy many Application Nodes.
Functions in a Resonate Application Node may call other functions in the same Application Node or in other Application Nodes.
- When a function calls another function in the same Application Node, it is known as a Local Function Call or LFC.
- When a function calls another function in another Application Node, it is known as a Remote Function Call or RFC.
All RFCs go through the Resonate Server, which ensures that the function is executed on the correct Application Node and that the result is returned to the calling function.