Architecture
Last updated
Last updated
All Gelato's product run on the same core Gelato Network architecture which is responsible for ensuring that tasks are executed correctly and efficiently.
In essence the Gelato Network needs to continuously check if the conditions for a task to execute have been met and when they are met, execute the transaction and ensure that it gets confirmed as quickly and efficiently as possible.
The Event Listener is responsible for continuously querying the chain and monitoring emitted events.
On EVM compatible platforms, events are often used as a lower cost option to share data that is not required to be accessed on-chain (i.e data that does not need to be kept in storage thus requiring less gas consumption). Events allow external entities, like our Event Listener, to do efficient queries of indexed data. For a more detailed and technical description of events, please refer to the Solidity Event Documentation.
Each Checker has access to the Event Listener and can subscribe to an arbitrary number of smart contracts and topics to watch. The tracked events are then decoded/translated into a specific data structure using predefined mappers, resulting in either a new task being created or existent tasks being updated/cancelled/executed.
The Checker defines arbitrary/custom logic to check if a Gelato task is executable at a given moment. It defines the conditions required for a task to become executable. It can also define other conditions that can update a task's state, such as limit order cancellations.
Gelato Network is composable of several independent Checkers, such as Gelato Automate and Limit Orders for example.
An Executor is responsible to reliably submit transactions on chain and making sure that they are mined as quickly as possible with the lowest cost.
For a more detailed description of Executors, please refer to the Executor Operators section.