Skip to content

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

  • 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.


C

  • 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.


D

  • 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.


E

  • 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)


G

  • Group


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


I

  • 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.


L

  • Local Name


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


M

  • 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.


N

  • 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.


P

  • Participant (Group Participant)


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


R

  • 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.


S

  • 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.


T

  • Timeout (Request / Session Timeout)


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


U

  • Point-to-Point Session


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