Engine-authoritative cluster discovery and session continuity¶
GRAPH_SERVICE_ENDPOINTS is a bounded bootstrap contact list. It is not a
per-group placement map. Once an authenticated engine connection is available,
the AU consumer calls the native ClusterMembers operation and uses its
verified leader/follower endpoint and certificate metadata for placed groups.
GRAPH_RAFT_GROUP_ENDPOINTS remains parseable for configuration migration and
operator audit, but it is not a live endpoint authority. Neither a stale map
nor the additive endpoint hint on a placement response can override the
verified membership snapshot. Remote plaintext tcp:// members are rejected;
remote members require tls:// plus a verified server name.
The consumer cache is process-local and keyed by the verified tenant, principal, agent, and optional cluster pin. A snapshot is usable only while:
- its membership and placement epochs are monotonic;
- its member certificate metadata is currently valid (within the configured clock-skew bound); and
- its explicit freshness TTL has not elapsed.
Transport errors may use a still-current last-good snapshot. A malformed, cross-cluster, cross-tenant, unsigned/rejected, stale-epoch, or certificate response never falls back to that snapshot. A process restart discards it and must authenticate and discover again.
Routed GraphSession values carry only bounded discovery metadata (cluster id,
epochs, certificate rotation, and a monotonic expiry). It is not durable
credential or session state. The GraphOS/MCP process transport also has an
explicit drain gate: shutdown stops new operations, waits up to
GRAPH_DRAIN_TIMEOUT_S, exposes a timed-out drain as a failure, and then closes
the process-owned transport. A replacement pod cannot silently claim continuity
after a timed-out drain or a lost process; it must establish a new verified
session and topology snapshot and recover durable work through its normal
checkpoint/outbox paths.
The four authorities remain separate:
- the engine signs and verifies cluster membership;
- AU validates consumer freshness, epoch, certificate, and context bounds;
GraphSessioncarries bounded route metadata for one operation; and- the MCP/GraphOS lifecycle gate controls admission and drain.
No endpoint, bearer, certificate value, or durable session token is written to the graph as a continuity claim.