@@ -122,6 +122,68 @@ The PEP binding is a **snapshot taken at resume**, recorded on the actor as
122122 on the next resume
123123```
124124
125+ The full resume / egress / suspend sequence, component by component:
126+
127+ ``` mermaid
128+ sequenceDiagram
129+ autonumber
130+
131+ participant CLI as kubectl ate
132+ participant API as ate-api
133+ participant GW as Gateway indexer
134+ participant ST as Redis/Valkey
135+ participant LET as atelet
136+ participant OM as ateom
137+ participant CAP as capture listener<br/>:15001
138+ participant PEP as agentgateway PEP<br/>:15008
139+ participant EXT as httpbin.org:443
140+
141+ rect rgb(235, 243, 255)
142+ Note over CLI,ST: Resume
143+ CLI->>API: resume actor my-egress-1 -a demo
144+ API->>ST: Load suspended actor
145+ API->>GW: Resolve egress PEP for actor
146+ GW-->>API: Best programmed Gateway address
147+ API->>ST: Claim worker
148+ API->>ST: Set RESUMING and EgressPepAddress
149+ end
150+
151+ rect rgb(235, 255, 238)
152+ Note over API,OM: Restore workload
153+ API->>LET: Run/Restore with EgressPepAddress
154+ LET->>OM: RunWorkload/RestoreWorkload with EgressPepAddress
155+ OM->>OM: setupActorNetwork<br/>veth plus netns
156+ OM->>CAP: Start capture listener
157+ OM->>OM: nftables redirects actor TCP to :15001
158+ OM-->>LET: ok
159+ LET-->>API: ok
160+ API->>ST: Set RUNNING
161+ end
162+
163+ rect rgb(255, 248, 225)
164+ Note over OM,EXT: Actor egress connection
165+ OM->>CAP: Actor conn (nftables redirect) to httpbin.org:443
166+ CAP->>CAP: Get original destination<br/>sniff SNI or Host
167+ CAP->>PEP: HTTP/2 CONNECT httpbin.org:443<br/>with actor metadata
168+ PEP->>EXT: Route via TCPRoute
169+ Note over CAP,EXT: TLS remains end-to-end<br/>PEP routes encrypted bytes only
170+ CAP-->>OM: Proxy byte stream
171+ end
172+
173+ rect rgb(255, 235, 238)
174+ Note over CLI,ST: Suspend
175+ CLI->>API: suspend actor
176+ API->>ST: Set SUSPENDING
177+ API->>LET: Checkpoint
178+ LET->>OM: CheckpointWorkload
179+ OM->>CAP: Close listener and streams
180+ OM-->>LET: snapshot files
181+ LET-->>API: ok (snapshot uploaded)
182+ API->>ST: Release worker<br/>clear EgressPepAddress
183+ Note over API,GW: Next resume re-resolves Gateway binding
184+ end
185+ ```
186+
125187To move a running actor to a different PEP: relabel the Gateways ** and** cycle
126188the actor (see "Point an actor at a different PEP").
127189
0 commit comments