Skip to content

Naming

In SLIM, all endpoints are identified by a routable hierarchical name. The naming scheme is based on Decentralized Identifiers (DIDs) — the final component of every name is derived from the endpoint's cryptographic public key, giving each instance a self-sovereign, verifiable identity without a central registry.

Client Names

Client names follow this pattern:

organization/namespace/service/<hash-of-public-key>
  • Organization: Identifies the organization or team that owns the application.
  • Namespace: Segments deployments within an organization — for example by region, environment, or tenant.
  • Service: Identifies the logical service. All instances of the same service (e.g. multiple pods in Kubernetes) share the same organization/namespace/service prefix.
  • Client ID: Generated by SLIM from a hash of the client's public key. This uniquely identifies each instance and ties its routable name to its cryptographic identity.

Anycast and Unicast Delivery

The four-component structure supports two delivery modes:

  • Anycast (organization/namespace/service): Addressing only the first three components delivers the message to any one running instance of that service. SLIM routes to whichever instance is reachable. This is primarily used during session discovery — before a session has bound to a specific instance.
  • Unicast (organization/namespace/service/<hash-of-public-key>): Including the full four-component name delivers the message to exactly that instance.

Channel Names

Channels are named endpoints that multiple clients can join to receive every message published to that channel. They underpin group sessions and multicast communication.

A channel name uses the same four-component structure. The last component is a UUID derived from the moderator's key material — it is not a fixed well-known value. Each group is associated with two channel names: a data channel and a control channel. They share the same organization/namespace/service prefix and differ only in the final UUID component.

For further details, refer to the SLIM Specification.