| Message Processor |
Polls the local database to check if there are any undelivered messages
and pushes them to the Prepare step's queue.
|
| Prepare Task |
Pops messages from its queue, ensures gas was paid, fetches any metadata
and simulates the message delivery transaction. If the simulation
succeeds, the message is pushed to the Submit step's queue. Otherwise,
the message is pushed back to the Prepare queue.
|
| Submit Task |
Pops messages from its queue, and sends the delivery transaction
onchain. Deliveries are batched whenever possible. If there is no error
broadcasting the transaction, the message is pushed to the Confirm
step's queue. Otherwise, the message is pushed back to the Prepare
queue.
|
| Confirm Task |
Awaits finality; if a chain reorg occurs, or the delivery transaction
reverts, the message is pushed back to the Prepare queue.
|