<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mpsb-agntcy-messaging-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="agncty-messaging-eco">An Overview of Messaging Systems and Their Applicability to Agentic AI</title>
    <seriesInfo name="Internet-Draft" value="draft-mpsb-agntcy-messaging-01"/>
    <author fullname="Luca Muscariello">
      <organization>Cisco</organization>
      <address>
        <email>lumuscar@cisco.com</email>
      </address>
    </author>
    <author fullname="Michele Papalini">
      <organization>Cisco</organization>
      <address>
        <email>micpapal@cisco.com</email>
      </address>
    </author>
    <author fullname="Mauro Sardara">
      <organization>Cisco</organization>
      <address>
        <email>msardara@cisco.com</email>
      </address>
    </author>
    <author fullname="Sam Betts">
      <organization>Cisco</organization>
      <address>
        <email>sambetts@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="24"/>
    <keyword>AI</keyword>
    <keyword>Agentic AI</keyword>
    <keyword>Communications</keyword>
    <keyword>Realtime</keyword>
    <abstract>
      <?line 71?>

<t>Agentic AI systems require messaging infrastructure that supports real-time
collaboration, high-volume streaming, and dynamic group coordination across
distributed networks. Traditional protocols like AMQP, MQTT, and NATS address
some requirements but fall short on security, particularly regarding <xref target="AMQP"/> <xref target="MQTT"/> <xref target="NATS"/>
post-compromise protection and quantum-safe encryption essential for autonomous
agents handling sensitive data.</t>
      <t>This document analyzes six messaging protocols—AMQP, MQTT, NATS, AMQP over
WebSockets, Kafka, and AGNTCY SLIM—across dimensions critical for GenAI agent
systems: streaming performance, delivery guarantees, security models, and
operational complexity. We examine how each protocol's design decisions impact
agentic AI deployments, from lightweight edge computing scenarios to large-scale
multi-organizational collaborations.</t>
      <t>AGNTCY SLIM emerges as a purpose-built solution, integrating Message Layer
Security (MLS) <xref target="RFC9420"/> with gRPC <xref target="gRPC"/> over HTTP/2 <xref target="RFC7540"/> to
provide quantum-safe end-to-end encryption, efficient streaming, and OAuth-based
authentication <xref target="RFC6749"/>. Unlike transport-layer security approaches, SLIM's
MLS implementation ensures secure communication even through untrusted
intermediaries while supporting dynamic
group membership changes essential for collaborative AI agents.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/agntcy/slim-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 95?>

<section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>When designing a multi-agent system for generative AI, the messaging layer
becomes a critical piece of infrastructure. GenAI agents—built with frameworks
like LangGraph, AutoGen, or LlamaIndex—often need to collaborate in real time,
exchange high volumes of streaming data (e.g., token-by-token outputs), and
coordinate complex tasks such as voting or consensus. Moreover, security
requirements extend well beyond basic TLS; in scenarios where agents share
sensitive models or partial computations, post-compromise security and robust
end-to-end encryption are essential.</t>
      <t>In practice, you’ll want a protocol that efficiently handles one-to-many or
many-to-many communication, supports dynamic membership (with agents joining or
leaving on the fly), and scales to accommodate a “forest” of agents spread
across global networks. Some protocols excel at ultra-low-latency,
high-throughput streaming—critical for continuous token streams or aggregated
embeddings—while others emphasize strong consistency and durability.
Additionally, advanced cryptographic features such as automatic key rotation and
forward secrecy are vital when compromised credentials must not enable an
attacker to decrypt future communications.</t>
      <t>Below, we compare six popular messaging protocols—AMQP, MQTT, NATS, AMQP over
WebSockets, Kafka, and the emerging AGNTCY SLIM (Secure Low-Latency Interactive
Messaging)—across
dimensions that matter for GenAI agent systems: streaming performance, delivery
guarantees, flexible pub/sub patterns, agent coordination, security (including
end-to-end encryption and zero-trust support), and real-world adoption.</t>
    </section>
    <section anchor="protocol-analysis-for-agentic-ai-systems">
      <name>Protocol Analysis for Agentic AI Systems</name>
      <t>The following sections provide detailed analysis of each messaging protocol in
the context of agentic AI requirements.</t>
      <section anchor="traditional-enterprise-messaging-amqp">
        <name>Traditional Enterprise Messaging: AMQP</name>
        <t>The Advanced Message Queuing Protocol (AMQP), most commonly implemented through
RabbitMQ, represents the gold standard for enterprise messaging systems. AMQP's
strength lies in its sophisticated message routing capabilities through
exchanges, queues, and routing keys, enabling complex message flow patterns
essential for enterprise applications.</t>
        <t>For agentic AI systems, AMQP offers several advantages. Its support for both
at-least-once and exactly-once delivery semantics (particularly in AMQP 1.0)
ensures reliable message delivery between AI agents, which is crucial when
agents are coordinating critical tasks or sharing expensive computational
results. The protocol's durable queue support means that agent messages can
persist across system restarts, preventing loss of important coordination data.</t>
        <t>However, AMQP's enterprise focus comes with trade-offs. The protocol carries
higher overhead due to its rich feature set, which may impact performance in
high-frequency agent communication scenarios. Streaming capabilities require
extensions like RabbitMQ Streams, adding complexity to deployments focused on
real-time agent collaboration.</t>
        <t>Authentication in AMQP relies on traditional enterprise mechanisms like SASL,
LDAP, and Kerberos, which integrate well with existing corporate identity
systems but may not align with modern cloud-native authentication patterns
preferred in AI infrastructure.</t>
      </section>
      <section anchor="iot-optimized-messaging-mqtt">
        <name>IoT-Optimized Messaging: MQTT</name>
        <t>Message Queuing Telemetry Transport (MQTT) emerged from the IoT world with a
focus on lightweight, efficient communication over constrained networks. Its
topic-based publish-subscribe model maps naturally to many agent communication
patterns, where agents subscribe to topics representing different types of
events or data streams.</t>
        <t>MQTT's three Quality of Service levels (QoS 0, 1, and 2) provide flexibility in
balancing performance versus reliability. For agentic AI systems, QoS 0
(at-most-once) works well for frequent status updates or non-critical
notifications, while QoS 2 (exactly-once) ensures critical agent coordination
messages are delivered reliably.</t>
        <t>The protocol's very low overhead makes it attractive for scenarios involving
large numbers of lightweight AI agents or edge computing deployments where
bandwidth is constrained. However, MQTT's IoT heritage shows in its limitations
for agentic AI use cases. Native streaming support requires broker extensions,
and message-level security typically relies entirely on transport-layer TLS
rather than end-to-end encryption.</t>
        <t>MQTT's authentication mechanisms, while sufficient for IoT devices, may not
provide the sophisticated identity and access management features required for
complex multi-agent AI systems involving different trust domains.</t>
      </section>
      <section anchor="cloud-native-messaging-nats">
        <name>Cloud-Native Messaging: NATS</name>
        <t>NATS represents a modern approach to messaging designed for cloud-native
architectures. Its lightweight design and support for multiple communication
patterns—publish-subscribe, request-reply, and queue groups—make it particularly
well-suited for microservices-based AI agent deployments.</t>
        <t>The protocol's core at-most-once delivery semantics align well with scenarios
where AI agents can tolerate occasional message loss in favor of high
performance. For use cases requiring stronger guarantees, NATS JetStream
provides at-least-once delivery and streaming capabilities, though this requires
additional infrastructure complexity.</t>
        <t>NATS's optional broker architecture offers interesting deployment flexibility
for agentic AI systems. While most deployments use a broker for efficiency, the
protocol can support peer-to-peer communication, potentially enabling direct
agent-to-agent communication in specialized scenarios.</t>
        <t>Authentication in NATS includes modern options like JWT tokens and NKey
cryptographic authentication, aligning better with cloud-native security
practices. However, like MQTT, NATS relies primarily on transport-layer security
rather than providing built-in end-to-end message encryption.</t>
      </section>
      <section anchor="browser-integration-amqp-over-websockets">
        <name>Browser Integration: AMQP over WebSockets</name>
        <t>AMQP over WebSockets addresses a specific deployment challenge: enabling
browser-based AI agents or user interfaces to participate in AMQP-based agent
coordination systems. This approach tunnels standard AMQP protocols through
WebSocket connections, allowing web applications to overcome firewall
restrictions and network topology limitations.</t>
        <t>For agentic AI systems that include web-based components—such as user-facing AI
assistants that need to coordinate with backend AI agents—this protocol variant
provides a bridge between browser environments and enterprise messaging
infrastructure. The WebSocket Secure (WSS) transport ensures encrypted
communication from browser to broker.</t>
        <t>However, the additional protocol layers (AMQP within WebSockets) introduce
higher overhead compared to native AMQP or other lightweight protocols. This
makes AMQP over WebSockets primarily suitable for scenarios where browser
integration is essential rather than for high-performance agent-to-agent
communication.</t>
      </section>
      <section anchor="high-throughput-streaming-apache-kafka">
        <name>High-Throughput Streaming: Apache Kafka</name>
        <t>Apache Kafka represents a fundamentally different approach to messaging, based
on distributed commit logs rather than traditional message queues. This
architecture provides exceptional throughput and built-in streaming capabilities
that align well with certain agentic AI use cases.</t>
        <t>Kafka's partition-based topic model enables massive horizontal scaling, making
it suitable for AI systems that need to process large volumes of training data,
model updates, or inference results across distributed agent networks. The
platform's native streaming capabilities through Kafka Streams and KSQL provide
powerful tools for real-time processing of agent-generated data.</t>
        <t>The protocol's built-in persistence across distributed clusters ensures that
agent communication history is preserved and can be replayed, which is valuable
for AI systems that need to audit agent decisions or retrain models based on
historical interactions. Consumer groups enable multiple agents to process
different partitions of the same topic concurrently, supporting parallel AI
workloads.</t>
        <t>However, Kafka's strengths come with complexity costs. The requirement for a
distributed cluster infrastructure may be overkill for simpler agent
coordination tasks. While Kafka provides exactly-once semantics through
transactions, the default at-least-once delivery may require additional
deduplication logic in agent implementations.</t>
        <t>Kafka's security model, while comprehensive, relies primarily on transport-layer
encryption and broker-based access controls rather than end-to-end message
encryption, which may not meet the security requirements of AI systems handling
sensitive model data or proprietary algorithms.</t>
      </section>
      <section anchor="next-generation-agent-messaging-slim">
        <name>Next-Generation Agent Messaging: SLIM</name>
        <t>AGNTCY SLIM (Secure Low-Latency Interactive Messaging) represents a
purpose-built protocol for modern agentic AI systems, designed to address the
specific security, performance, and coordination requirements that existing
protocols cannot fully satisfy.</t>
        <t>SLIM is intended as a transport layer for agent protocols like A2A and MCP. It
handles secure routing, group messaging, and end-to-end encryption so protocol
implementations can focus on agent semantics. A registration-based model lets
agents become reachable through the SLIM network without exposing server ports,
while only routing nodes need to be publicly reachable. This simplifies
deployment for agents behind NATs and firewalls.</t>
        <t>SLIM's foundation on gRPC over HTTP/2 and HTTP/3 provides several immediate
advantages for AI agent communication. The binary protocol buffer wire format
minimizes serialization overhead while supporting both binary and text data
types essential for AI workloads. HTTP/2's multiplexing capabilities allow a
single connection to carry multiple concurrent agent conversations, reducing
connection overhead in systems with many interacting agents.</t>
        <t>SLIM is architected as a distributed system with a clear separation of
concerns:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Data plane</strong>: Routes messages across SLIM nodes using only metadata for
efficient forwarding and topology management.</t>
          </li>
          <li>
            <t><strong>Session layer</strong>: Provides reliable delivery, MLS-based end-to-end
encryption, and secure group management (create, invite, join, remove).</t>
          </li>
          <li>
            <t><strong>Control plane</strong>: Orchestrates routing nodes, configuration, and
administrative operations.</t>
          </li>
        </ul>
        <t>Routing nodes run only the data plane, keeping infrastructure lightweight,
while language bindings include the data-plane client plus the session layer
for full security and reliability.</t>
        <t>The protocol's quality of service model explicitly addresses the diverse
communication patterns found in agentic AI systems. Fire-and-forget messaging
supports high-frequency status updates and non-critical notifications, while
reliable exactly-once delivery ensures critical coordination messages and
expensive computational results are never lost. This extends consistently across
request-reply patterns and streaming communications.</t>
        <t>Perhaps most significantly, SLIM's integration of Message Layer Security (MLS)
provides quantum-safe, end-to-end encryption specifically designed for group
communications. Unlike transport-layer security approaches used by other
protocols, MLS ensures that messages remain secure even when transmitted through
potentially compromised intermediaries—a critical requirement for AI systems
operating across multiple trust domains.</t>
        <t>The protocol's authentication model demonstrates particular innovation in
addressing agentic AI security requirements. By transporting MLS credentials and
cryptographic proofs within OAuth bearer tokens over HTTP/2, SLIM achieves
several important properties:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Interoperability</strong>: Leverages standard HTTP/2 and OAuth libraries, reducing
implementation complexity and improving compatibility with existing
infrastructure</t>
          </li>
          <li>
            <t><strong>Scalability</strong>: Single persistent HTTP/2 connections efficiently carry many
MLS-secured messages between agents</t>
          </li>
          <li>
            <t><strong>Immediate revocation</strong>: Malicious or compromised agents can be immediately
ejected by revoking their OAuth tokens without requiring complex ratchet
tree rebalancing operations</t>
          </li>
        </ul>
        <t>SLIM's naming system is hierarchical and DID-inspired, for example:
<tt>organization/namespace/service/instance</tt>. This supports anycast routing (to any
available instance), unicast routing (to a specific instance), and service
discovery without hardcoded endpoints or external registries. The structure maps
cleanly to organizational boundaries and multi-tenant deployments.</t>
        <t>The protocol's support for both broker-based and peer-to-peer operation offers
deployment flexibility. While broker-based operation provides efficiency for
multi-party group communications typical in agent coordination scenarios,
peer-to-peer capabilities enable direct agent-to-agent communication when
appropriate. SLIM exposes two session types that map to common agent patterns:
point-to-point sessions for tool calls and group sessions for coordination and
broadcast.</t>
        <t>SLIM provides multi-language bindings. Python and Go bindings are available
today, with JavaScript/TypeScript, C#, and Kotlin in progress, enabling
heterogeneous agent systems to interoperate on the same transport.</t>
      </section>
      <section anchor="security-considerations-for-agentic-ai">
        <name>Security Considerations for Agentic AI</name>
        <t>Security requirements for agentic AI systems extend well beyond the capabilities
provided by traditional messaging protocols. The autonomous nature of AI agents,
combined with their access to sensitive data and computational resources,
creates unique threat models that messaging infrastructure must address.</t>
        <t><strong>Post-Compromise Security</strong>: In traditional systems, credential compromise
typically requires immediate revocation and re-authentication. However, AI
agents may operate for extended periods with limited human oversight. SLIM's
MLS implementation provides forward secrecy, ensuring that compromise of
current credentials cannot decrypt past communications, and post-compromise
security, guaranteeing that future communications remain secure even after
credential compromise.</t>
        <t><strong>Quantum-Safe Cryptography</strong>: As quantum computing advances threaten current
cryptographic standards, AI systems—which may operate for years with the same
cryptographic keys—need protection against future quantum attacks. SLIM's
quantum-safe MLS implementation provides this protection, while traditional
protocols rely on classical cryptographic assumptions that may become
vulnerable.</t>
        <t><strong>Multi-Domain Operations</strong>: Agentic AI systems often span multiple
organizational and security domains, with agents from different organizations
collaborating on shared tasks. Traditional protocols typically assume trust in
messaging infrastructure, but SLIM's end-to-end encryption ensures secure
communication even when messages transit through potentially untrusted
intermediaries.</t>
        <t><strong>Dynamic Group Membership</strong>: AI agent groups frequently change as agents join
collaborations, complete tasks, or become unavailable. MLS's efficient group
key management handles these membership changes while maintaining security
properties, unlike approaches that require complete cryptographic context
regeneration.</t>
      </section>
      <section anchor="performance-implications">
        <name>Performance Implications</name>
        <t>The performance characteristics of messaging protocols significantly impact the
behavior and capabilities of agentic AI systems, particularly as the number of
agents and frequency of interactions scale.</t>
        <t><strong>Latency Sensitivity</strong>: Many AI agent interactions are latency-sensitive,
particularly in real-time decision-making scenarios or when agents are
coordinating time-critical tasks. SLIM's HTTP/2 foundation provides header
compression and multiplexing that reduce per-message overhead, while the binary
protocol buffer encoding minimizes serialization costs.</t>
        <t><strong>Throughput Requirements</strong>: Large-scale agentic AI systems may involve
thousands of agents generating substantial message volumes. While protocols
like Kafka excel at raw throughput, they may introduce latency through their
log-based architecture. SLIM balances throughput and latency through efficient
connection reuse and optional reliability levels.</t>
        <t><strong>Connection Efficiency</strong>: Traditional protocols often require separate
connections for each communication pattern or security context. SLIM's
connection multiplexing allows a single HTTP/2 connection to handle diverse
communication patterns between agents, reducing resource consumption and
connection establishment overhead.</t>
        <t><strong>Streaming Performance</strong>: AI agents frequently exchange streaming data—such as
token-by-token language model outputs or real-time sensor data. SLIM's native
gRPC streaming support over HTTP/2 provides efficient bidirectional streaming
without the overhead of connection-per-stream approaches.</t>
      </section>
      <section anchor="deployment-and-operational-considerations">
        <name>Deployment and Operational Considerations</name>
        <t>The operational characteristics of messaging protocols significantly impact the
total cost of ownership and operational complexity of agentic AI systems.</t>
        <t><strong>Infrastructure Requirements</strong>: Traditional enterprise protocols like AMQP
require dedicated message broker infrastructure with high availability and
clustering capabilities. Kafka requires even more complex distributed
infrastructure. SLIM's optional broker architecture allows deployments to scale
infrastructure complexity with system requirements.</t>
        <t><strong>Monitoring and Observability</strong>: Debugging distributed agentic AI systems
requires comprehensive visibility into agent communications. SLIM's foundation
on standard HTTP/2 infrastructure enables use of existing observability tools
and practices, while proprietary protocols may require specialized monitoring
solutions.</t>
        <t><strong>Integration with Cloud Services</strong>: Modern AI deployments increasingly rely on
cloud services for scalability and managed operations. SLIM's HTTP/2 foundation
integrates naturally with cloud load balancers, API gateways, and observability
services, while specialized messaging protocols may require additional
integration layers.</t>
        <t><strong>Compliance and Auditing</strong>: AI systems in regulated industries require
comprehensive audit trails and compliance capabilities. SLIM's structured topic
hierarchy and optional message persistence support regulatory requirements,
while the end-to-end encryption provides compliance with data protection
regulations.</t>
      </section>
    </section>
    <section anchor="rpc-in-agentic-protocols-and-relationship-to-messaging">
      <name>RPC in Agentic Protocols and Relationship to Messaging</name>
      <t>Most agent-facing interfaces in use today — notably A2A and the Model Context
Protocol (MCP) — are Remote Procedure Call (RPC) oriented. They expose
synchronous request/response semantics for tool invocation, resource listing,
and capability execution. This section clarifies how RPC relates to asynchronous
messaging and how the two paradigms interoperate in agentic systems.</t>
      <section anchor="rpc-vs-messaging-synchronous-vs-asynchronous">
        <name>RPC vs. Messaging: Synchronous vs. Asynchronous</name>
        <ul spacing="normal">
          <li>
            <t><strong>RPC (A2A, MCP)</strong>: Caller issues a request and blocks/awaits a timely
response. Semantics emphasize tightly scoped operations (for example, “call tool
X with parameters Y”) with bounded latency and explicit error contracts.</t>
          </li>
          <li>
            <t><strong>Messaging (AMQP, MQTT, NATS, Kafka, SLIM)</strong>: Decoupled producers/consumers
communicate via topics/subjects/queues. Delivery can be one-to-one, one-to-many,
or many-to-many with loose coupling, buffering, and retries. Producers are not
inherently blocked by consumers.</t>
          </li>
        </ul>
        <t>In practice, agentic applications need both: synchronous tool invocations for
interactivity and asynchronous channels for streaming output, progress,
coordination, and fan-out/fan-in patterns.</t>
      </section>
      <section anchor="when-asynchronous-feels-synchronous-interactive-real-time">
        <name>When Asynchronous Feels Synchronous (Interactive Real-Time)</name>
        <t>Asynchronous transports can provide an interactive, “RPC-like” experience when:
- A request message includes a correlation ID and reply-to destination.
- The callee publishes a response on the indicated reply destination within a short SLA.
- Client libraries surface responses as futures/promises and manage timeouts/retries.</t>
        <t>This underpins instant messaging UX and maps well to agent UIs where a user
triggers an action and expects prompt, possibly streaming, results.</t>
      </section>
      <section anchor="bridging-patterns-rpc-over-messaging-and-streaming-rpc">
        <name>Bridging Patterns: RPC over Messaging and Streaming RPC</name>
        <ul spacing="normal">
          <li>
            <t><strong>Request/Reply over Pub/Sub</strong>: Implement RPC by publishing a command event
and awaiting a correlated reply event (applies to AMQP, NATS, MQTT, and SLIM
topics).</t>
          </li>
          <li>
            <t><strong>Streaming RPC</strong>: Use bidirectional streams (for example, gRPC over SLIM
HTTP/2/3) to deliver token streams, partial results, or progress updates while
retaining an RPC caller experience.</t>
          </li>
          <li>
            <t><strong>Sagas and CQRS</strong>: For multi-step workflows across agents, coordinate via
asynchronous orchestration with idempotency keys, correlation/causation IDs, and
compensations.</t>
          </li>
          <li>
            <t><strong>Backpressure and Flow Control</strong>: Prefer streaming transports (HTTP/2/3,
gRPC) or messaging systems with flow control when returning large/continuous
results.</t>
          </li>
        </ul>
      </section>
      <section anchor="a2a-and-mcp-in-context">
        <name>A2A and MCP in Context</name>
        <ul spacing="normal">
          <li>
            <t><strong>A2A Agent Cards</strong>: Describe capabilities/endpoints commonly invoked via
RPC-style calls (tool execution, configuration). They benefit from messaging for
discovery, eventing, and long-running workflows.</t>
          </li>
          <li>
            <t><strong>MCP</strong>: Standardizes RPC-like interactions (resources, tools, prompts). For
multi-party sessions, combine MCP RPC with a messaging layer for broadcast,
presence, and coordination.</t>
          </li>
        </ul>
      </section>
      <section anchor="slim-rpc-srpc">
        <name>SLIM RPC (SRPC)</name>
        <t>SLIM also supports a native RPC style via SRPC (Slim RPC), which layers
request/response semantics on top of SLIM's interactive, real-time messaging.
SRPC addresses practical RPC concerns in distributed agent systems:</t>
        <ul spacing="normal">
          <li>
            <t>Correlation and reply routing for synchronous calls over an async transport</t>
          </li>
          <li>
            <t>Idempotency keys and deduplication to make retries safe</t>
          </li>
          <li>
            <t>Lightweight synchronization/ordering guarantees for request/response and streaming</t>
          </li>
          <li>
            <t>Seamless fit for A2A/MCP-style tool calls while retaining SLIM's MLS security and multiplexing</t>
          </li>
          <li>
            <t>Supports all four gRPC interaction patterns (unary, server streaming, client streaming, bidirectional streaming)</t>
          </li>
        </ul>
        <t>See SRPC reference and examples: <eref target="https://github.com/agntcy/slim/blob/main/data-plane/python/integrations/slimrpc/README.md">SLIM RPC (SRPC) README</eref>.</t>
      </section>
      <section anchor="advantages-of-slim-for-a2a-apis">
        <name>Advantages of SLIM for A2A APIs</name>
        <t>SLIM augments existing A2A-style RPC with capabilities that are difficult to
achieve over plain request/response transports:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Simultaneous fan-out RPC (scatter-gather)</strong>: Invoke a single RPC across many
agents (by topic/group/labels) concurrently and aggregate responses
(first-success, quorum, all-success) with correlation IDs.</t>
          </li>
          <li>
            <t><strong>Group addressing and dynamic membership</strong>: Target MLS-secured groups;
add/remove agents without reconfiguring endpoints.</t>
          </li>
          <li>
            <t><strong>Streaming responses</strong>: Return partial results or token streams from each
agent over a single multiplexed connection (gRPC over HTTP/2/3).</t>
          </li>
          <li>
            <t><strong>Idempotency and safe retries</strong>: SRPC supports idempotency keys and
deduplication, enabling robust retry without duplicating effects.</t>
          </li>
          <li>
            <t><strong>QoS, deadlines, and backpressure</strong>: Apply delivery guarantees, per-call
timeouts, and flow control to avoid overload while maintaining interactivity.</t>
          </li>
          <li>
            <t><strong>End-to-end security and multi-tenant isolation</strong>: MLS E2E encryption and
OAuth-based policy across both RPC and messaging channels.</t>
          </li>
          <li>
            <t><strong>Observability and tracing</strong>: Correlation/causation IDs and standardized
transport enable distributed tracing and per-agent metrics.</t>
          </li>
        </ul>
        <t>These capabilities let A2A-style tool calls scale beyond one-to-one
interactions, enabling broadcast queries, coordinated multi-agent actions, and
efficient collection of results in real time.</t>
      </section>
      <section anchor="security-implications">
        <name>Security Implications</name>
        <ul spacing="normal">
          <li>
            <t><strong>Identity and Authorization</strong>: Reuse OAuth tokens across RPC (gRPC) and
messaging (SLIM channels as topics) for consistent policy enforcement.</t>
          </li>
          <li>
            <t><strong>End-to-End Security</strong>: MLS-backed secure channels (SLIM) so both RPC and
messaging inherit end to end message encryption.
## Guidance: When to Choose What</t>
          </li>
          <li>
            <t>Use <strong>RPC (A2A/MCP)</strong> for low-latency, point operations with immediate
feedback and well-defined error contracts.</t>
          </li>
          <li>
            <t>Use <strong>Messaging</strong> for broadcast/fan-out, decoupling, retries, buffering, and
multi-party coordination.</t>
          </li>
          <li>
            <t>Use <strong>Streaming RPC or RPC over Messaging</strong> for interactive UX with
partial/continuous results or uncertain duration operations.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="comparison">
      <name>Comparison</name>
      <t>Table 1 provides a detailed comparison of three popular messaging protocols commonly considered for agent communication systems:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Feature</th>
            <th align="left">AMQP (e.g. RabbitMQ)</th>
            <th align="left">MQTT</th>
            <th align="left">NATS</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <strong>Protocol Type</strong></td>
            <td align="left">Message queueing (queues/exchanges)</td>
            <td align="left">Lightweight pub/sub for IoT</td>
            <td align="left">Lightweight messaging (pub/sub, req/reply, queue groups)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport</strong></td>
            <td align="left">TCP (optionally TLS)</td>
            <td align="left">TCP (optionally TLS)</td>
            <td align="left">TCP (optionally TLS)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Model</strong></td>
            <td align="left">Queues, exchanges, routing keys</td>
            <td align="left">Topic-based</td>
            <td align="left">Subjects (pub/sub), queue groups, request/reply</td>
          </tr>
          <tr>
            <td align="left">
              <strong>QoS / Delivery</strong></td>
            <td align="left">At-least-once, exactly-once (AMQP 1.0)</td>
            <td align="left">QoS 0 (at-most-once), 1, 2 (exactly-once)</td>
            <td align="left">At-most-once (core), at-least-once with JetStream</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Streaming</strong></td>
            <td align="left">Via extensions/plugins (e.g. RabbitMQ Streams)</td>
            <td align="left">Not native (requires broker extensions)</td>
            <td align="left">Native with JetStream</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Persistence</strong></td>
            <td align="left">Yes (durable queues)</td>
            <td align="left">Broker-dependent</td>
            <td align="left">Optional via JetStream</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Protocol Overhead</strong></td>
            <td align="left">Higher (rich feature set)</td>
            <td align="left">Very low</td>
            <td align="left">Very low</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Broker Required</strong></td>
            <td align="left">Yes</td>
            <td align="left">Yes</td>
            <td align="left">Optional (but common)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Authentication</strong></td>
            <td align="left">User/password, SASL (e.g., LDAP, Kerberos)</td>
            <td align="left">Username/password or custom tokens</td>
            <td align="left">NKey, JWT, token, user/password</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport Security</strong></td>
            <td align="left">TLS</td>
            <td align="left">TLS</td>
            <td align="left">TLS</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Security</strong></td>
            <td align="left">Typically broker-level or plugin-based encryption</td>
            <td align="left">Usually none at message level; rely on TLS</td>
            <td align="left">None in core (TLS in transit), JetStream can encrypt at rest</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Binary or Text</strong></td>
            <td align="left">Binary framing</td>
            <td align="left">Binary framing</td>
            <td align="left">Text-based protocol (core), binary clients available</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Use Cases</strong></td>
            <td align="left">Enterprise messaging, financial transactions, RPC</td>
            <td align="left">IoT, mobile, sensor networks</td>
            <td align="left">Cloud-native microservices, real-time communications</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Real-World Usage</strong></td>
            <td align="left">Very widely used via RabbitMQ (top open-source broker) in enterprises of all sizes</td>
            <td align="left">Dominant in IoT ecosystems; supported by many device/broker vendors</td>
            <td align="left">Gaining traction in cloud-native (CNCF project), used by major tech companies</td>
          </tr>
        </tbody>
      </table>
      <t>Table 2 extends the comparison to include additional protocols relevant to modern agentic AI systems:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Feature</th>
            <th align="left">AMQP over WebSockets</th>
            <th align="left">Kafka</th>
            <th align="left">SLIM</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <strong>Protocol Type</strong></td>
            <td align="left">AMQP tunneled through WebSockets</td>
            <td align="left">Distributed commit log, high-throughput pub/sub</td>
            <td align="left">Secure low-latency interactive messaging</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport</strong></td>
            <td align="left">WebSockets over TLS</td>
            <td align="left">TCP (optionally TLS)</td>
            <td align="left">gRPC (over HTTP/2-HTTP/3)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Model</strong></td>
            <td align="left">Same as AMQP (depends on the broker's AMQP model)</td>
            <td align="left">Topics with partitions, consumer groups, offset-based consumption</td>
            <td align="left">Hierarchical names (<tt>org/namespace/service/instance</tt>), point-to-point and group sessions</td>
          </tr>
          <tr>
            <td align="left">
              <strong>QoS / Delivery</strong></td>
            <td align="left">Same as AMQP</td>
            <td align="left">At-least-once default; exactly-once possible via transactions</td>
            <td align="left">Fire&amp;Forget unreliable (at-most-once), unreliable and reliable (exactly-once). This extends to request/reply and streaming as well.</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Streaming</strong></td>
            <td align="left">Same as AMQP if broker supports streaming</td>
            <td align="left">Native log-based streaming (Kafka Streams, KSQL, etc.)</td>
            <td align="left">Native gRPC support via HTTP/2/3 client streaming, server streaming. Notice that Server Sent Events (SSE) with HTTP/1.1 cannot carry binary nor compressed data.</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Persistence</strong></td>
            <td align="left">Same as AMQP</td>
            <td align="left">Built-in: messages persist on disk across clusters</td>
            <td align="left">Not supported</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Protocol Overhead</strong></td>
            <td align="left">Higher (AMQP + WebSockets handshake)</td>
            <td align="left">Moderate (custom binary protocol, but optimized for high throughput)</td>
            <td align="left">Low: Wire format uses protocol buffer. Supports also binary (byte type in protobuf)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Broker Required</strong></td>
            <td align="left">Yes</td>
            <td align="left">Yes (distributed cluster)</td>
            <td align="left">Yes for efficient multi-party. P2P is also possible.</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Authentication</strong></td>
            <td align="left">Same as AMQP (broker-based)</td>
            <td align="left">SASL/PLAIN, SASL/SCRAM, Kerberos, OAuth</td>
            <td align="left">Transports MLS credentials and proofs inside OAuth bearer tokens over HTTP/2. This gives you: Interoperability: Leverage standard HTTP/2 and OAuth libraries. Scalability: One persistent HTTP/2 connection carries many MLS messages. Immediate revocation: Eject bad actors by revoking their OAuth tokens—no need to rebalance the ratchet tree first.</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Transport Security</strong></td>
            <td align="left">WSS (WebSocket Secure)</td>
            <td align="left">TLS</td>
            <td align="left">TLS</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Message Security</strong></td>
            <td align="left">Same as AMQP (depends on the broker's encryption at rest/in-transit)</td>
            <td align="left">TLS in-flight encryption, optional at-rest encryption (broker config)</td>
            <td align="left">MLS (Quantum safe, Secure end-to-end, even across insecure hops, post-compromise security)</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Binary or Text</strong></td>
            <td align="left">Binary AMQP frames over WebSockets</td>
            <td align="left">Binary protocol (common payloads: Avro, JSON, Protobuf)</td>
            <td align="left">Binary or Text</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Use Cases</strong></td>
            <td align="left">Browser-based apps needing AMQP behind firewalls</td>
            <td align="left">High-throughput data pipelines, streaming analytics, event sourcing</td>
            <td align="left">Group messaging, one-to-many, many-to-many, Cloud-native microservices, real-time communications, streaming</td>
          </tr>
          <tr>
            <td align="left">
              <strong>Real-World Usage</strong></td>
            <td align="left">Less common, mainly for browser/firewall scenarios using RabbitMQ or similar</td>
            <td align="left">Extremely widespread across industries; de facto standard for large-scale event streaming</td>
            <td align="left">New Entrant, low</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC7540">
          <front>
            <title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title>
            <author fullname="M. Belshe" initials="M." surname="Belshe"/>
            <author fullname="R. Peon" initials="R." surname="Peon"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also introduces unsolicited push of representations from servers to clients.</t>
              <t>This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. HTTP's existing semantics remain unchanged.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7540"/>
          <seriesInfo name="DOI" value="10.17487/RFC7540"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AMQP" target="https://www.oasis-open.org/standards#amqp">
          <front>
            <title>OASIS Advanced Message Queuing Protocol (AMQP) 1.0 Specification</title>
            <author initials="" surname="OASIS" fullname="OASIS">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MQTT" target="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html">
          <front>
            <title>OASIS MQTT Version 5.0 Specification</title>
            <author initials="" surname="OASIS" fullname="OASIS">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NATS" target="https://docs.nats.io/">
          <front>
            <title>NATS Documentation</title>
            <author initials="S." surname="Communications" fullname="Synadia Communications">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Kafka" target="https://kafka.apache.org/documentation/">
          <front>
            <title>Apache Kafka Documentation</title>
            <author initials="A. S." surname="Foundation" fullname="Apache Software Foundation">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="gRPC" target="https://grpc.io/docs/">
          <front>
            <title>gRPC Documentation</title>
            <author initials="" surname="CNCF" fullname="CNCF">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SLIM" target="https://spec.slim.agntcy.org">
          <front>
            <title>AGNTCY SLIM Specification</title>
            <author initials="" surname="AGNTCY" fullname="AGNTCY">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA619624cR5bm/3iKWBtYFz11abk929P0YGZpSrbZTUqUim5P
YzDARFVFFbOVlVnOCyn2yIAfYv8ssAPss+yj+EnmfOecuGSyKGt21zAkqpgZ
13P5zrVms5npiq70p/aTs8q+uvPNXeHvbb21V75t3a6odnb50HZ+31pXbezN
rS8ae3Y4lMXarYqy6B5sV9uzna+6Ym3PLj4xbrVq/B0N6HbVunuY7cNAM7+u
PzFr1/ld3Tyc2qLa1sZs6nXl9rSATeO23Wx/aFczerNb52/+5plp+9W+aNui
rrqHg8fbG3/w9EfVmarfr3xzajY09qlZ11Xrq7ZvT+3Wla03tJjfmk+ta7w7
DWvvaKCWPryvm7e7pu4Pp/YijWiXcTbz1j/QQ5tTY2e0P/4z7hb/Oq/3+76K
Q9Inb7wru2LvjXF9d1vTwszMWPpv25elbPayXzt71bdr1xS+LGv+dd3sXFX8
lQc6tedFu5bP/d4V5akt+z2/8N/X+M18Xe8fDXtVrG996e21O7iyqIqPGXZf
rA94/EPDur6p7dI1G9e4jxqzlWc/MObS7e3XvuvajxmvdXTB9Gw2ngH5NHt6
447u3Nqzq9fXp/xOIOhXZ8uLpT3b3Llq7TdK0N6+7n0Psr5u6q5e16Wd4NUT
+2z+G7s8+HWx1bv8hEcLV2j1v5mV9fPoMp9rdr47tbddd2hPF4v7+/t57dqi
ndVETnPa2qLtiHnoSNpP3f7HA7119frm5thq8bn9k29AefZvP2ZFv74e4rB2
vKD9j10nf9zRLPzTDD/Nb7t9SaO8PLtZDteHT+zzet3vifh/dTXLh8ptCveI
OZ5aXuW6dl7UC3rij2771g3nPjs4omv5zcevQd9a1tvunnjfflP3dAl46+g6
3mL0ueOX+Iw2+URY2e7N9flwYfjk4xd0/vL8m6NT75rDGrvHUWCi5eXF1egE
vn15c/5n/sXHk4S8dHTGlsaYt2Wxn4usxYZJSs1m1q3arnHrzpgk5myrKqDx
P/YFHWWUzBDijaM3+nXX0y+6W9fZtj8c6qbD466csSQkPivdqm54zVN7W+xu
Z3c1STRv6WXv9jTWlDXMhiiHRJJloWzXNYneouLXrFs3dduaTUGvFKu+I6au
fAcJ3s7tTUMEh8dcaQ/K2q0ti7eeRcOUWUumYFJ2m01DuzBtTWvQfeEWW0sj
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
D6C5M9jhfgAA

-->

</rfc>
