Skip to content

Commit d0c7f57

Browse files
authored
docs: add a glossary of core terms (agent-substrate#200)
Addresses agent-substrate#131 Adds `docs/glossary.md`: a single place that defines the terms used across Agent Substrate and shows how they relate. ### What it covers - Resources (ActorTemplate, WorkerPool), control-plane records (Actor, Worker), components (ate-api-server, atecontroller, atelet, ateom, atenet, podcertcontroller, kubectl-ate), runtime/sandbox concepts (gVisor, runsc, pause container, checkpoint/restore), snapshots (golden, last, storage), and the Uniform DNS Mesh. - Three UML diagrams: a sequence diagram (activation/resume flow), a class diagram (resource/ownership model, grouped into Kubernetes-object and control-plane-record packages), and a state-machine diagram (actor lifecycle). - Linked from the README documentation section. ### Scope Per the issue thread, this documents the names as they exist in the codebase; rename proposals are intentionally left to a separate discussion, so this PR is documentation-only (not a renaming proposal). ### Accuracy Every term and diagram was checked against the code and existing docs. Project terminology and casing are reused where things are already named (for example "Uniform DNS Mesh", the atelet "Herder", and the "interior gVisor" coordinator), and component responsibilities, RPC names, relationships, and the actor status lifecycle map to their sources. - [x] Tests pass (documentation-only change) - [x] Appropriate changes to documentation are included in the PR
1 parent fe93d16 commit d0c7f57

2 files changed

Lines changed: 88 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ We provide several sample applications demonstrating Agent Substrate's capabilit
203203
### Documentation & Guides
204204
* [API Configuration Guide](docs/api-guide.md): Detailed reference for configuring WorkerPools, ActorTemplates, Secrets, and Volumes.
205205
* [Full CLI Documentation](cmd/kubectl-ate/README.md): Installation and usage for `kubectl-ate`.
206+
* [Glossary](docs/glossary.md): Core terms (Actor, ActorTemplate, WorkerPool, Worker, ate-api-server, atenet, atelet, ateom) and how they relate.
206207
* [Observability Guide](docs/observability.md): Guide to actor logging, metrics, and distributed tracing.
207208

208209
## Tour

docs/glossary.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Agent Substrate Glossary
2+
3+
This document defines the core terms used across Agent Substrate.
4+
5+
For how the pieces fit together, see the [Architecture](architecture.md) and
6+
[API Guide](api-guide.md).
7+
8+
## Resources (declarative, Kubernetes CRDs)
9+
10+
- **ActorTemplate**: the definition of an actor "class": the container image(s)
11+
and snapshot configuration. Creating an `ActorTemplate` triggers creation of
12+
a [Golden Snapshot](#snapshots). It is treated as immutable: you create a new
13+
template for a new version rather than editing an existing one. It is
14+
analogous to a Pod template, but for a checkpointable workload.
15+
16+
- **WorkerPool**: declares warm compute capacity, a fleet of pre-started worker
17+
pods. It is reconciled into a Kubernetes `Deployment` by the
18+
[atecontroller](#components).
19+
20+
## Records (dynamic state, in the control-plane store)
21+
22+
These are not Kubernetes objects; they live in the control-plane database
23+
because they change too frequently for etcd.
24+
25+
- **Actor**: a single instance derived from an `ActorTemplate`, identified by a
26+
DNS-1123 actor ID. It is the unit that is suspended and resumed, and it moves
27+
between workers over its lifetime. An Actor record tracks its lifecycle
28+
status and snapshot references.
29+
30+
- **Worker**: a record representing one worker pod in a `WorkerPool`. A Worker
31+
hosts at most one Actor at a time; many Actors are multiplexed across a pool
32+
over time.
33+
34+
## Components
35+
36+
- **ate-api-server** (binary `ateapi`): the control plane. It owns the Actor
37+
lifecycle, schedules Actors onto Workers, and coordinates their snapshots,
38+
all backed by the state store. The `kubectl-ate` CLI talks to it.
39+
40+
- **atecontroller**: the Kubernetes controller that reconciles the CRDs (for
41+
example, it turns a `WorkerPool` into a `Deployment`).
42+
43+
- **atelet**: the node-level supervisor, run as a DaemonSet. It pulls images,
44+
assembles OCI bundles, drives the sandbox lifecycle on the node via ateom,
45+
and streams snapshots to and from snapshot storage.
46+
47+
- **ateom**: the coordinator that runs inside each worker pod and drives the
48+
sandbox runtime on behalf of atelet. This decouples the physical pod
49+
lifecycle from the sandboxed agent process.
50+
51+
- **atenet**: the networking stack. It provides a DNS server for actor
52+
resolution and a router that resumes suspended Actors on demand and routes
53+
traffic to the right worker pod.
54+
55+
- **podcertcontroller**: issues short-lived pod certificates that components
56+
use as their TLS identity to authenticate connections to one another
57+
(mutual TLS).
58+
59+
- **kubectl-ate**: a `kubectl` plugin CLI for managing the Actor lifecycle and
60+
listing Workers.
61+
62+
## Lifecycle
63+
64+
- **Suspend**: hibernate a running Actor by checkpointing it to a snapshot and
65+
freeing its Worker.
66+
67+
- **Resume**: activate a suspended Actor by restoring it onto a Worker. The
68+
common path restores from a snapshot rather than cold-booting.
69+
70+
## Snapshots
71+
72+
- **Golden Snapshot**: the initial checkpoint captured once, when an
73+
`ActorTemplate` is created, from a temporary "golden" boot of the workload.
74+
By default an Actor of that template is first restored from this shared
75+
snapshot.
76+
77+
- **Last Snapshot**: the most recent per-Actor snapshot, written on Suspend and
78+
used to restore that specific Actor on the next Resume.
79+
80+
- **Snapshot storage**: the object store (GCS or S3) where snapshots are
81+
persisted so Actor state is durable and portable across the cluster.
82+
83+
## Networking
84+
85+
- **Uniform DNS Mesh**: every Actor is reachable at a uniform address,
86+
`<actor-id>.actors.resources.substrate.ate.dev`, resolved by atenet. Traffic to
87+
that name is routed (and the Actor resumed if needed) automatically.

0 commit comments

Comments
 (0)