Skip to content

docs: add a glossary of core terms#200

Open
Frederick F. Kautz IV (fkautz) wants to merge 2 commits into
agent-substrate:mainfrom
fkautz:docs/glossary
Open

docs: add a glossary of core terms#200
Frederick F. Kautz IV (fkautz) wants to merge 2 commits into
agent-substrate:mainfrom
fkautz:docs/glossary

Conversation

@fkautz

Copy link
Copy Markdown
Contributor

Addresses #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.

  • Tests pass (documentation-only change)
  • Appropriate changes to documentation are included in the PR

@juli4n Julian Gutierrez Oschmann (juli4n) added the kind/docs Improvements or additions to documentation label Jun 10, 2026
Comment thread docs/glossary.md Outdated
For deeper detail, see the [Architecture](architecture.md) and
[API Guide](api-guide.md).

## How the pieces fit together

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bit of a nit, but my expectation for a glossary would be just a list of terms and their definitions. The addition of the sequence diagram and resource model feels like they belong somewhere else.

This is mostly from the standpoint of discoverability when people are making modifications to the system as it's not immediately obvious that there will be diagrams in the glossary to change.

Suggest finding a different home for the diagrams?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. Pulled the diagrams out in 4dce2ee so the glossary is just terms now. I'll relocate them to the architecture docs in a follow-up rather than dropping them.

Comment thread docs/glossary.md
These are not Kubernetes objects; they live in the control-plane database
(Valkey/Redis) because they change too frequently for etcd.

- **Actor**: a single instance derived from an `ActorTemplate`, identified by a

@bowei Bowei Du (bowei) Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be careful about where we are defining things. For a glossary, I would expect it to remain at a high level vs referencing things like enum states etc as this will be hard to maintain consistency across the entire codebase. In addition, having multiple sources of definitions may confuse the agent coding depending on which source they end up referencing.

Can we keep the glossary definitions to be summaries at the high level? More low level descriptions should be kept as close to the code definitions as possible (i.e. in docstrings) so there are less consistency issues.

This comment applies in general to the other entries...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. Cut the state sequence and RPC/enum detail throughout, leaving short summaries. Filed #236 to move that detail into docstrings near the code. Applied your "in general" note to the other entries too.

Comment thread docs/glossary.md Outdated
DNS-1123 actor ID. It is the unit that is suspended and resumed, and it moves
between workers over its lifetime. An Actor record tracks status
(`SUSPENDED``RESUMING``RUNNING``SUSPENDING``SUSPENDED`) and its
snapshot references. (Some older internal docs call this a "session".)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should try to avoid reference older internal docs, at least not yet before our first real release!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed. The "session" mention (and the older-docs reference) is gone from the intro entirely.

Comment thread docs/glossary.md Outdated

## Runtime concepts

- **gVisor**: the sandboxing technology Substrate uses to isolate and snapshot

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No clear we need to define this?

Comment thread docs/glossary.md Outdated
- **kubectl-ate**: a `kubectl` plugin CLI for managing the Actor lifecycle
(create, resume, suspend, delete, logs) and listing Workers.

## Runtime concepts

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if these terms need a special definition...

We should focus the glossary on terms that are unique to Substrate and will need clarification for people external to the project.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed on both. Cut gVisor, runsc, and "pause container" since they're external tech, not Substrate vocabulary. The one relevant fact, that suspend/resume builds on gVisor's checkpoint/restore, is now folded into the Suspend/Resume definitions.

Frederick F. Kautz IV (fkautz) added a commit to fkautz/substrate that referenced this pull request Jun 14, 2026
Address review feedback on agent-substrate#200:
- move the sequence/class/state diagrams out of the glossary (they belong
  with the architecture docs, where people look for diagrams to update)
- keep definitions to high-level summaries; drop low-level RPC names and
  enum states that should live in docstrings near the code
- remove references to older internal docs
- cut generic runtime terms (gVisor, runsc, pause container) that are not
  unique to Substrate
Adds docs/glossary.md defining the terms used across the project
(resources, control-plane records, components, runtime/sandbox concepts,
snapshots, and networking) plus three UML diagrams showing how they
relate: a sequence diagram (activation flow), a class diagram (resource
model), and a state-machine diagram (actor lifecycle). Links it from the
README documentation section.

Scoped to documenting the names as they exist in the codebase; rename
proposals are left to a separate discussion (agent-substrate#131).

Addresses agent-substrate#131
Address review feedback on agent-substrate#200:
- move the sequence/class/state diagrams out of the glossary (they belong
  with the architecture docs, where people look for diagrams to update)
- keep definitions to high-level summaries; drop low-level RPC names and
  enum states that should live in docstrings near the code
- remove references to older internal docs
- cut generic runtime terms (gVisor, runsc, pause container) that are not
  unique to Substrate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/docs Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants