Skip to content

Registrar API

aether.registrar.v1 — The gRPC contract between a node agent and its cluster's registrar — the versioned endpoint snapshot, the watch stream that fans changes out to agents, and the cross-cluster configuration listing.

Generated from the schema

Rendered by protoc from api/aether/registrar/v1/ when this site was built, so it cannot drift from the compiled schema — there is no committed copy of this page. Field constraints are carried as buf.validate options and are not shown here; read the .proto for those.

api/aether/registrar/v1/registrar.proto

ListAllConfigRequest

ListAllConfigResponse

Field Type Label Description
projections aether.registry.v1.ServiceConfigProjection repeated projections is the clusterset-wide set of service config projections, one per (service, origin cluster). origin_cluster is set authoritatively by the registry.

ListAllEndpointsRequest

Field Type Label Description
protocol aether.registry.v1.Service.Protocol

ListAllEndpointsResponse

Field Type Label Description
services ListAllEndpointsResponse.ServicesEntry repeated
version string

ListAllEndpointsResponse.ServicesEntry

Field Type Label Description
key string
value ServiceEndpoints

RegisterEndpointRequest

Field Type Label Description
service_name string
protocol aether.registry.v1.Service.Protocol
endpoint aether.registry.v1.ServiceEndpoint

RegisterEndpointResponse

ServiceEndpoints

Field Type Label Description
endpoints aether.registry.v1.ServiceEndpoint repeated

ServiceFilter

ServiceFilter scopes a watch to a set of service names.

Field Type Label Description
services string repeated

UnregisterEndpointRequest

Field Type Label Description
service_name string
ips string repeated

UnregisterEndpointResponse

WatchEndpointsRequest

Field Type Label Description
cluster_name string
node_name string
last_version string
filter ServiceFilter When set, the watch is scoped to filter.services: the initial snapshot and incremental events are limited to those services (demand-scoped distribution -- fan-out per endpoint change scales with the service's consumer count, not the node count). An explicitly set but empty filter watches nothing (a node with no mesh pods). Unset = full watch. Agents re-assert their filter on every reconnect; the registrar never serves less than asked.

WatchEndpointsResponse

Field Type Label Description
type WatchEndpointsResponse.EventType
service_name string
protocol aether.registry.v1.Service.Protocol
endpoint aether.registry.v1.ServiceEndpoint
version string

WatchEndpointsResponse.EventType

Name Number Description
EVENT_TYPE_UNSPECIFIED 0
EVENT_TYPE_FULL_SNAPSHOT 1
EVENT_TYPE_ENDPOINT_ADDED 2
EVENT_TYPE_ENDPOINT_REMOVED 3
EVENT_TYPE_ENDPOINT_UPDATED 4
EVENT_TYPE_SNAPSHOT_COMPLETE 5 Sent by the server once the initial full snapshot has been fully streamed (or immediately when the client was already up-to-date). Carries the snapshot version; has no service_name/endpoint. Clients use it to know their cache is complete before deriving config from it.
EVENT_TYPE_SERVICE_ADDED 6 Service-catalog events: a service exists while it has at least one endpoint in the registrar snapshot. Unlike endpoint events, these BYPASS the watch filter and reach every watcher (they are rare -- deploy-time transitions, not pod churn), giving each agent a full local index of service names: the on-demand (ODCDS) cold path answers existence locally instead of stalling on nonexistent services. The full catalog is replayed as SERVICE_ADDED events on every (re)connect before SNAPSHOT_COMPLETE. Carries service_name only.
EVENT_TYPE_SERVICE_REMOVED 7

RegistrarService

Method Name Request Type Response Type Description
RegisterEndpoint RegisterEndpointRequest RegisterEndpointResponse RegisterEndpoint registers a single endpoint for a service.
UnregisterEndpoint UnregisterEndpointRequest UnregisterEndpointResponse UnregisterEndpoint unregisters an endpoint for a service.
WatchEndpoints WatchEndpointsRequest WatchEndpointsResponse stream WatchEndpoints streams endpoint change events to agents.
ListAllEndpoints ListAllEndpointsRequest ListAllEndpointsResponse ListAllEndpoints returns all endpoints from the registrar's snapshot.
ListAllConfig ListAllConfigRequest ListAllConfigResponse ListAllConfig returns the clusterset-wide config projections (multi-cluster config propagation, proposal 026 Option E/C). Agents do NOT read the registry directly; the spoke registrar surfaces imported projections through this pull. A push stream (WatchConfig) is a later optimization; the pull is correct and eventually-consistent (AP), matching the import posture.