mirror of https://github.com/hashicorp/consul
35 lines
868 B
Plaintext
35 lines
868 B
Plaintext
|
graph TB
|
||
|
|
||
|
requestLeader[request] --> RPCLeader
|
||
|
requestFollower[request] --> RPCFollower
|
||
|
|
||
|
class requestLeader,requestFollower req;
|
||
|
classDef req fill:transparent,color:#000,stroke-width:1;
|
||
|
|
||
|
subgraph Leader
|
||
|
RPCLeader[RPC]
|
||
|
RaftLeader[Raft]
|
||
|
StateStoreLeader[State Store]
|
||
|
FSMLeader[FSM]
|
||
|
end
|
||
|
|
||
|
RPCLeader -->|write| RaftLeader
|
||
|
RPCLeader -->|read| StateStoreLeader
|
||
|
RaftLeader ---> FSMLeader
|
||
|
FSMLeader --> StateStoreLeader
|
||
|
|
||
|
subgraph Follower
|
||
|
RPCFollower[RPC]
|
||
|
RaftFollower[Raft]
|
||
|
StateStoreFollower[State Store]
|
||
|
FSMFollower[FSM]
|
||
|
end
|
||
|
|
||
|
RaftLeader <-.->|consensus and replication| RaftFollower
|
||
|
|
||
|
RPCFollower -->|forward write to leader| RPCLeader
|
||
|
RPCFollower -->|read| StateStoreFollower
|
||
|
RaftFollower --> FSMFollower
|
||
|
FSMFollower --> StateStoreFollower
|
||
|
|