Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/.index
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ nav:
- Agent Workflow Server: agws
- Agent Manifest: manifest
- How-To Guides: how-to-guides
- Glossary: glossary.md
- How to Contribute: contributing.md
349 changes: 349 additions & 0 deletions docs/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,349 @@
# SLIM Messaging Glossary

This glossary defines technical terms referenced across the SLIM messaging documentation: core concepts, naming, sessions, routing, configuration, security, integrations (SLIMRPC, A2A, MCP), and deployment tooling. Terms are alphabetized.

---

## A

<div class="grid cards" markdown>

- **Ack (Acknowledgment)**

---

A confirmation—explicit or implicit—that a sent message was delivered or processed. In reliable modes, missing acks trigger retries until `max_retries` is reached or a timeout fires.

- **Anycast**

---

Routing mode where a message addressed to a 3-component name (`org/namespace/service`) is delivered to exactly one currently reachable instance. Each message may choose a different instance. Used in the discovery phase of point-to-point and group sessions.

</div>

---

## C

<div class="grid cards" markdown>

- **Channel (Group Channel)**

---

Logical group namespace: the first three SLIM name components (`org/namespace/service`) without the client hash. All joined participants receive each message. Also referred to as a Group.

- **Channel Moderator**

---

Manager of a group channel that invites/removes participants and coordinates MLS state.

- **Client (Application Client)**

---

Runtime endpoint connected to a SLIM node. Identified by full four-component name: `org/namespace/service/clientHash`.

- **Client Instance ID (Client Hash)**

---

Fourth name component, derived from identity material (e.g., hash of public key). Ensures unique, routable unicast identity per instance.

- **Connection (Routing Connection)**

---

Configured link (endpoint + parameters) enabling a SLIM node to route traffic to another SLIM node.

- **Controller (SLIM Controller)**

---

Central orchestration service offering northbound (administrative) and southbound (node) gRPC interfaces for configuration, topology, and group/channel operations.

</div>

---

## D

<div class="grid cards" markdown>

- **Data Plane (Messaging Layer)**

---

Operational pipeline for message routing, delivery, encryption (MLS), and session state, implemented in SLIM nodes. It can be used synonymously with "SLIM Node".

- **Discovery (Service Discovery)**

---

Initial interaction where packets can be sent to any available instance. This is used at the beginning of a point-to-point session and when a new invite is sent in a group session.

</div>

---

## E

<div class="grid cards" markdown>

- **Endpoint**

---

Host:port (and scheme) on which a server listens or a client connects. Note that in the configuration the client needs to specify the protocol (e.g. http://localhost:46357), but not the server (e.g. localhost:46357)

</div>

---

## G

<div class="grid cards" markdown>

- **Group**

---

Set of participants joined to a channel. Shares message distribution and optionally an MLS security context. See also: Channel.

</div>

---

## I

<div class="grid cards" markdown>

- **Identity**

---

Cryptographic or token-based representation of a workload (shared secret, JWT, SPIFFE SVID) determining trust and naming uniqueness.

- **Invitation (Group Invitation)**

---

Control message enabling a client to join an existing group.

</div>

---

## L

<div class="grid cards" markdown>

- **Local Name**

---

The fully qualified SLIM name representing the current application endpoint. See Client (Application Client)

</div>

---

## M

<div class="grid cards" markdown>

- **Max Retries (Session Config)**

---

Upper limit on retransmission attempts for a single message lacking timely acknowledgment.

- **MLS (Message Layer Security)**

---

End-to-end group key agreement and encryption protocol (RFC 9420) providing confidentiality and integrity beyond hop-level TLS termination.

- **Moderator**

---

Alias of Channel Moderator.

- **Group Session**

---

Session type enabling many-to-many distribution; every message is delivered to all participants in the channel.

</div>

---

## N

<div class="grid cards" markdown>

- **Name (SLIM Name)**

---

Structured routing identifier: `organization/namespace/service/clientHash` (full) or the first three components for channel addressing. The first component, `organization`, usually represents the top-level administrative or tenant boundary; the second component, `namespace`, can be used to encode environment, region, or an organizational partition; the third component, `service`, specifies the service exposed by the client. When multiple instances of the same service are deployed (such as several pods in a Kubernetes cluster), these first three components remain the same for all instances. The last component, `clientHash`, is generated by SLIM from the client's identity material (e.g., a hash of the public key) and uniquely identifies each specific client instance.

- **Node (SLIM Node)**

---

Runtime process implementing the data plane: message routing, session handling, MLS operations, optional control endpoints.

</div>

---

## P

<div class="grid cards" markdown>

- **Participant (Group Participant)**

---

Client that has accepted an invitation and joined a group, receiving all channel traffic.

</div>

---

## R

<div class="grid cards" markdown>

- **Retry**

---

Re-attempt of sending a message after a timeout window, capped by `max_retries`.

- **Route (Routing Entry)**

---

Controller-managed mapping directing messages for a particular name (or prefix) through a specific connection.

</div>

---

## S

<div class="grid cards" markdown>

- **Session**

---

Abstraction for interaction context (Point-to-Point, Group). Manages encryption (if MLS enabled), retries, and sequencing.

- **Session Configuration**

---

Per-session parameters selected at creation (e.g., mode, `mls_enabled`, metadata). In Python bindings: `PySessionConfiguration.PointToPoint(...)`, etc.

- **Session Layer**

---

Middleware that abstracts encryption, invitations, routing resolution, and reliability, offering simple send/receive primitives.

- **Shared Secret Identity**

---

Simplest identity bootstrap (common secret) for demos/tests before stronger mechanisms (e.g., JWT) are deployed.

- **Slimctl**

---

Command-line tool managing routes, connections, subscriptions, and nodes via Controller or direct node endpoints.

- **SLIM (Secure Low-Latency Interactive Messaging)**

---

Framework delivering secure, scalable, low-latency messaging with unified naming, session semantics, encryption, and extensibility.

- **SLIMA2A**

---

Integration of A2A agent protocol over SLIM using SLIMRPC-generated stubs.

- **SLIM Controller**

---

See Controller.

- **SLIMRPC**

---

Protobuf-based RPC framework operating over SLIM transport (unary and streaming patterns). Analogous to gRPC but using SLIM naming and channels.

- **SLIMRPC Compiler (protoc-slimrpc-plugin)**

---

Protoc plugin generating Python stubs and servicers for SLIMRPC services defined in `.proto` files.

- **Subscription**

---

Binding between a routed name/prefix and a connection so messages destined to that name traverse the appropriate path.

- **Publish**

---

Operation that sends a message on a session (context: point-to-point/group). May await acknowledgment depending on reliability mode. In Python bindings: `session.publish(...)` or `session.publish_to(ctx, ...)`.

- **Message Context**

---

Metadata accompanying a received message (e.g., routing info). Used to reply (`publish_to`) preserving addressing.

</div>

---

## T

<div class="grid cards" markdown>

- **Timeout (Request / Session Timeout)**

---

Upper bound for waiting on acknowledgments or RPC responses before retry/failure escalation.

</div>

---

## U

<div class="grid cards" markdown>

- **Point-to-Point Session**

---

Session mode for communication with a specific client instance. Ensures message affinity to a single endpoint.

</div>
11 changes: 7 additions & 4 deletions docs/messaging/.index
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@ nav:
- Getting Started with SLIM:
- Getting Started: slim-howto.md
- Configuration Reference: slim-data-plane-config.md
- SLIM Messaging Layer: slim-data-plane.md
- SLIM Messaging Layer:
- Overview: slim-data-plane.md
- SLIM Sessions: slim-session.md
- SLIM Authentication: slim-authentication.md
- SLIM Controller: slim-controller.md
- SLIM Group Management: slim-group.md
- SLIM Group Communication Tutorial: slim-group-tutorial.md
- SLIM Groups:
- Group Creation and Management: slim-group.md
- Group Communication Tutorial: slim-group-tutorial.md
- SLIM Integrations:
- SLIMRPC:
- Overview: slim-rpc.md
- Protoc Plugin: slim-slimrpc-compiler.md
- SLIM A2A: slim-a2a.md
- MCP over SLIM: slim-mcp.md

Loading
Loading