mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-08 23:08:19 -05:00
docs: add architecture diagrams to ExEx documentation (#20193)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
@@ -4,6 +4,28 @@ description: How Execution Extensions (ExExes) work in Reth.
|
||||
|
||||
# How do ExExes work?
|
||||
|
||||
## Architecture
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Reth
|
||||
participant ExEx
|
||||
|
||||
Note over Reth,ExEx: Normal Flow
|
||||
Reth->>ExEx: ChainCommit Notification
|
||||
activate ExEx
|
||||
ExEx->>ExEx: Process Block Data
|
||||
ExEx->>Reth: FinishedHeight Event
|
||||
deactivate ExEx
|
||||
|
||||
Note over Reth,ExEx: Reorg Flow
|
||||
Reth->>ExEx: ChainReorg Notification
|
||||
activate ExEx
|
||||
ExEx->>ExEx: Rollback & Re-process
|
||||
ExEx->>Reth: New FinishedHeight Event
|
||||
deactivate ExEx
|
||||
```
|
||||
|
||||
ExExes are just [Futures](https://doc.rust-lang.org/std/future/trait.Future.html) that run indefinitely alongside Reth
|
||||
– as simple as that.
|
||||
|
||||
|
||||
@@ -17,6 +17,27 @@ initiated by Reth.
|
||||
|
||||
Read more about things you can build with Execution Extensions in the [Paradigm blog](https://www.paradigm.xyz/2024/05/reth-exex).
|
||||
|
||||
## Architecture
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph "Reth Process"
|
||||
Reth[Reth Core]
|
||||
|
||||
Reth -->|Notifications| ExEx1[ExEx 1]
|
||||
Reth -->|Notifications| ExEx2[ExEx 2]
|
||||
Reth -->|Notifications| ExEx3[ExEx N]
|
||||
|
||||
ExEx1 -->|Events| Reth
|
||||
ExEx2 -->|Events| Reth
|
||||
ExEx3 -->|Events| Reth
|
||||
end
|
||||
|
||||
ExEx1 --> External1[External System 1]
|
||||
ExEx2 --> External2[External System 2]
|
||||
ExEx3 --> External3[External System N]
|
||||
```
|
||||
|
||||
## What Execution Extensions are not
|
||||
|
||||
Execution Extensions are not separate processes that connect to the main Reth node process.
|
||||
|
||||
Reference in New Issue
Block a user