<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mennell-art-fmsg-structured-messaging-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>fmsg: Structured Host-to-Host Messaging with Verifiable Threads</title>
    <seriesInfo name="Internet-Draft" value="draft-mennell-art-fmsg-structured-messaging-00"/>
    <author fullname="Mark Mennell">
      <organization>Independent</organization>
      <address>
        <email>markmnl@fmsg.io</email>
      </address>
    </author>
    <date year="2026" month="June" day="27"/>
    <area>ART</area>
    <keyword>messaging</keyword>
    <keyword>protocol</keyword>
    <keyword>binary</keyword>
    <abstract>
      <?line 46?>

<t>fmsg is a message exchange protocol that combines ownership and control at the domain level, as provided by Internet email, with the efficient conversational messaging usually associated with closed messaging applications. Messages are immutable, structured binary objects exchanged directly between the hosts responsible for the sender's and recipients' domains. Each message may link to a previous message using a cryptographic hash, forming verifiable threads, so that replies convey only newly created content rather than reproducing earlier correspondence. A receiving host validates the origin, integrity and ancestry of a message, and applies recipient policy, before accepting its content. Only the participants of a message may reply to it, and participants may add additional recipients after a message has been sent.</t>
      <t>A distinguishing feature of fmsg is that the receiving host can call back the sending host during message exchange to challenge for details of the message being sent. Processing such a challenge requires the sending host to be reachable and to compute additional digests over the pending message, strengthening sender verification and message integrity.</t>
      <t>This document describes the motivation and architecture of fmsg, which is based on an existing experimental protocol specification and implementation. Its purpose is to solicit IETF feedback on venue and scope before the specification is developed into standards-track documents.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://markmnl.github.io/fmsg-internet-draft/draft-mennell-art-fmsg-structured-messaging.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mennell-art-fmsg-structured-messaging/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Applications and Real-Time Area Area mailing list (<eref target="mailto:dispatch@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dispatch/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dispatch/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/markmnl/fmsg-internet-draft"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Electronic messaging is dominated by two broad classes of systems. Internet email provides ownership and control at the domain level through open protocols, while modern messaging applications provide efficient conversational messaging but typically operate as closed services under a single provider.</t>
      <t>This document introduces fmsg, an experimental message exchange protocol that bridges these two models, providing ownership and control at the domain level together with efficient conversational messaging. Messages are immutable binary objects exchanged between hosts responsible for the sender's and recipients' domains. Each message may reference a previous message using a cryptographic hash, forming a verifiable thread. Unlike conventional email, replies reference previous messages rather than reproducing earlier correspondence, allowing participants to verify message ancestry while transmitting only newly created message content.</t>
      <t>The architecture of fmsg is based on a simple principle: fmsg is just messages. There are no protocol-defined channels, rooms or groups; to receive a message, someone has to send it to you. Group conversations emerge naturally as participants reply to messages and add additional recipients over time.</t>
      <t>The protocol incorporates sender verification and message integrity into the message exchange itself. Receiving hosts verify the origin, integrity and ancestry of incoming messages, and apply recipient policy, before accepting message content.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the following terms:</t>
      <t>Address: An fmsg address in the form @user@example.com identifying a recipient within a domain.</t>
      <t>Client: An application that sends and receives messages through a Host.</t>
      <t>Host: An implementation of the fmsg protocol responsible for sending and receiving messages to and from other fmsg hosts.</t>
      <t>Sending Host: The Host transmitting a message.</t>
      <t>Receiving Host: The Host receiving a message.</t>
      <t>Message: An immutable unit of communication exchanged between Hosts.</t>
      <t>Thread: A directed acyclic graph (DAG) of messages formed by references from each message to a previous message.</t>
      <t>Recipient: An Address identified in a message as an intended recipient.</t>
      <t>Sender: The Address originating a message.</t>
      <t>Participants: The Sender and all Recipients of a message. Only Participants may reply to a message or add additional Recipients to a thread.</t>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>The design of fmsg was motivated by three primary objectives.</t>
      <t>First, to provide the most efficient practical message exchange while preserving the capabilities that have made Internet email successful. In particular, fmsg retains unsolicited messaging, multiple recipients, arbitrary media types and ownership and control at the domain level, while avoiding the repeated transmission of information already known to participants in a conversation.</t>
      <t>Second, to make conversation structure part of the protocol itself. Rather than relying on application-specific heuristics to reconstruct message threads, fmsg messages explicitly reference previous messages using cryptographic hashes. This allows participants to independently construct deterministic, verifiable message threads and enables consistent presentation of conversations across implementations.</t>
      <t>Finally, to integrate sender verification and message integrity into the message exchange protocol. Rather than relying solely on complementary protocols or deployment-specific mechanisms, fmsg incorporates these properties into the architecture of message exchange itself. This is intended to simplify host deployment and operation, supporting a more decentralised set of messaging providers.</t>
    </section>
    <section anchor="architectural-overview">
      <name>Architectural Overview</name>
      <t>This section describes the architecture of fmsg in terms of its core objects (messages, threads, participants and hosts) and the message exchange between hosts that ties them together.</t>
      <t>The architecture is guided by several core principles. Ownership and control remain at the domain level. Messages are immutable and exchanged independently between hosts. Message threads are deterministic and verifiable by all participants. Sender verification and message integrity are incorporated into the message exchange protocol. The protocol intentionally defines only the exchange of messages, leaving concerns such as user identity, authentication, message retrieval and client functionality undefined.</t>
      <t>The following subsections describe these principles and how they relate to one another.</t>
      <section anchor="ownership-and-control">
        <name>Ownership and Control</name>
        <t>fmsg preserves ownership and control at the domain level. Every address belongs to a domain, and each domain is responsible for operating one or more Hosts authorised to send and receive messages for addresses within that domain. Messages are exchanged directly between Sending Hosts and Receiving Hosts responsible for the sender's and recipients' domains.</t>
        <t>The core protocol defines only host-to-host message exchange. It does not define how users are authenticated, how addresses are provisioned, how messages are retrieved by clients, or how messages are stored within a domain. Thus allowing domain owners to retain control over their own infrastructure, operational policies and user management while interoperating through the fmsg message exchange protocol.</t>
      </section>
      <section anchor="messages">
        <name>Messages</name>
        <t>The fundamental object in fmsg is the message.</t>
        <t>Messages are immutable. Once created, the contents of a message never change. Corrections, replies, forwarding a message to additional Recipients and other conversation activity are represented by creating new messages rather than modifying existing ones. This immutability provides a stable foundation for verification, message integrity and conversation history.</t>
        <t>Each message has exactly one Sender and one or more Recipients. Messages may contain arbitrary content represented by a Media Type and may include zero or more attachments. The protocol places no restrictions on the application semantics of the message content, allowing the exchange of plain text, rich text, images, audio, video or application-specific data.</t>
        <t>Messages are exchanged independently between Sending Hosts and Receiving Hosts. The relationship between messages, including replies and conversation evolution, is described by the thread model rather than by the messages themselves.</t>
      </section>
      <section anchor="threads">
        <name>Threads</name>
        <t>A Thread is formed by messages explicitly referencing previous messages. The first message in a Thread has no parent, while each subsequent message references the message to which it replies. A Thread is therefore an emergent protocol object; the protocol defines only messages and the relationships between them. As messages receive independent replies, a Thread naturally forms a directed acyclic graph (DAG).</t>
        <t>By making message relationships explicit, every Participant can deterministically reconstruct the same Thread from the same set of messages. Replies reference an earlier message, allowing only newly created message content to be transmitted while preserving the context and ordering of the conversation.</t>
        <t>The Thread model also provides a consistent basis for conversation policy. Because the Participants of a message are explicitly defined, a Receiving Host can determine whether a Sender is authorised to reply to a message and how additional Recipients become Participants in the Thread. The protocol therefore defines conversation evolution in terms of new immutable messages rather than modification of existing messages.</t>
        <t>Finally, explicit Thread structure provides conversation context that is available to every Receiving Host. A Host can determine whether its local Participants have previously participated in a Thread and may use this information when making implementation-specific policy decisions, such as message classification, prioritisation or spam filtering.</t>
      </section>
      <section anchor="participants">
        <name>Participants</name>
        <t>A Participant is the Sender or a Recipient of a Message.</t>
        <t>Only a Participant of a Message can reply to that Message. This ensures that conversation participation is explicit and verifiable, and prevents unrelated parties from introducing messages into an existing Thread.</t>
        <t>A Participant may add additional Recipients to a Thread by creating a new Message. Existing Messages are never modified. Instead, conversation membership evolves as new Messages are created, preserving the immutability of every Message while allowing conversations to naturally expand over time.</t>
        <t>Because Participants are determined from the Thread itself, every Host can independently determine the Participants of any Message without requiring additional protocol state. This provides a consistent foundation for participant validation, conversation presentation and implementation-specific policy decisions.</t>
      </section>
      <section anchor="hosts">
        <name>Hosts</name>
        <t>A Host is an implementation of the fmsg protocol that sends and receives Messages on behalf of a domain. A domain may operate more than one Host, and a Host may serve more than one domain. Hosts are the only protocol-visible actors in fmsg: clients, user identity and message storage sit behind a Host and are not exposed by the message exchange protocol.</t>
        <t>A Message exchange always takes place between a Sending Host and a Receiving Host. These roles are assigned per Message: a Host acts as a Sending Host when transmitting a Message and as a Receiving Host when accepting one.</t>
      </section>
      <section anchor="message-exchange">
        <name>Message Exchange</name>
        <section anchor="exchange-model">
          <name>Exchange Model</name>
          <t>Message exchange occurs directly between a Sending Host and one or more Receiving Hosts. A Sending Host is responsible for transmitting a Message to each distinct Receiving Host by domain in the Message's Recipients. Each Receiving Host processes the Message independently and determines whether it will be accepted.</t>
          <t>The message exchange protocol standardises communication between Sending Hosts and Receiving Hosts. Each Receiving Host independently validates and accepts or rejects a Message per Recipient according to the requirements of the protocol and its own local policies. Acceptance or rejection by one Receiving Host has no effect on the processing of the Message by any other Receiving Host.</t>
        </section>
        <section anchor="message-acceptance">
          <name>Message Acceptance</name>
          <t>Message acceptance is based on three complementary validation stages: Sender validation, Message validation, and Recipient validation. A Receiving Host completes each validation stage before accepting a Message.</t>
          <t>Sender validation establishes that the Sending Host is authorised to exchange Messages on behalf of the Sender's domain and, where required, that it possesses the Message being transmitted. This validation provides assurance that the Message originates from an authorised Host.</t>
          <t>Message validation confirms the integrity and consistency of the Message itself. This includes validating message structure, size constraints, replay status, and the Message's ancestry within the Thread to ensure the Message can be incorporated into a consistent and verifiable conversation history.</t>
          <t>Recipient validation determines whether each Recipient is willing to accept the Message. This includes validating recipient-specific policy, verifying that the Sender is permitted to communicate within the context of the Thread, and applying any implementation-specific acceptance policies. Because Recipient validation is performed independently by each Receiving Host, acceptance decisions remain under the control of the recipient's domain.</t>
        </section>
        <section anchor="the-challenge">
          <name>The Challenge</name>
          <t>A distinguishing feature of fmsg is the automatic challenge. While a Message is being received, and before its content is accepted, a Receiving Host may open a separate connection back to the Sending Host and challenge it for details of the Message currently being transmitted. The Sending Host responds by computing and returning cryptographic digests over the pending Message.</t>
          <t>Because the challenge is directed at the Sending Host using address information independently verified against the Sender's domain, a successful response demonstrates that the Sending Host is reachable at an authorised address and is genuinely in possession of the Message being sent. This strengthens both Sender validation and Message validation, and imposes a small cost on the sender that helps deter unsolicited bulk messaging.</t>
          <t>The challenge is optional and performed at the discretion of the Receiving Host, allowing protocol assurances to be traded against efficiency. The detailed mechanism is defined by the protocol specification rather than this document.</t>
        </section>
      </section>
    </section>
    <section anchor="scope-of-this-document-and-request-for-feedback">
      <name>Scope of this Document and Request for Feedback</name>
      <t>This document deliberately describes only the motivation, design goals and core architecture of fmsg. It does not define message encodings, the on-the-wire protocol procedures, or transport bindings. Those details exist today in an experimental specification <xref target="FMSG-SPEC"/> and reference implementation <xref target="FMSGD"/>, and are intended to be specified separately as the work matures.</t>
      <t>The anticipated document structure separates the work into:</t>
      <ul spacing="normal">
        <li>
          <t>this architectural overview;</t>
        </li>
        <li>
          <t>a message format document defining the binary message structure;</t>
        </li>
        <li>
          <t>a host-to-host protocol document defining the exchange procedures, including the challenge-response mechanism and message acceptance; and</t>
        </li>
        <li>
          <t>one or more transport binding documents (for example, a TCP and TLS binding).</t>
        </li>
      </ul>
      <t>The author is seeking feedback from the IETF community on the following questions, rather than a detailed review of the underlying specification at this stage:</t>
      <ol spacing="normal" type="1"><li>
          <t>Is the IETF an appropriate venue for this work, and is the Applications and Real-Time (ART) area, by way of the DISPATCH working group, the right place to determine its disposition?</t>
        </li>
        <li>
          <t>Is there interest in standardising a domain-level messaging protocol distinct from Internet email and from proprietary instant messaging systems?</t>
        </li>
        <li>
          <t>Is the proposed scope appropriate, in particular the decision to standardise only host-to-host message exchange while leaving user identity, authentication, message retrieval and client behaviour out of scope?</t>
        </li>
        <li>
          <t>Are there existing or in-progress efforts with which this work should be aligned or reconciled?</t>
        </li>
      </ol>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The fmsg architecture is designed around validation before acceptance. A Receiving Host validates a Message before accepting it into a Thread. This model ensures that sender verification, message integrity and recipient policy are evaluated before a Message becomes part of the recipient's conversation history.</t>
      <t>Message acceptance comprises three validation stages: Sender validation, Message validation and Recipient validation. Together these establish that the Sending Host is authorised to send on behalf of the Sender's domain, that the Message is valid and consistent with the Thread, and that the Message satisfies recipient-specific policy.</t>
      <t>The architecture provides explicit Thread relationships and immutable Messages, allowing Receiving Hosts to independently verify Thread ancestry and determine whether a Sender is authorised to participate in a conversation. Receiving Hosts may additionally perform protocol-defined challenge-response verification during message exchange to strengthen sender verification and message integrity.</t>
      <t>The protocol standardises the information available to make message acceptance decisions while intentionally leaving operational policy to Receiving Hosts. Implementations may apply additional measures, including spam filtering, rate limiting and abuse detection, when determining whether to accept a Message.</t>
      <t>Operational security considerations, transport security, denial-of-service mitigations and other implementation guidance are outside the scope of this document and are expected to be defined by the corresponding protocol specifications.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This document describes an architecture that has been implemented and evaluated through experimental software.</t>
      <t>A complete protocol specification, including message definitions and protocol procedures, has been developed <xref target="FMSG-SPEC"/>. A canonical implementation following updates to the specification exists <xref target="FMSGD"/>. This implementation has been used to iterate development hand-in-hand with evolution of the specification.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="FMSG-SPEC" target="https://github.com/markmnl/fmsg">
        <front>
          <title>fmsg Protocol Specification</title>
          <author initials="M." surname="Mennell" fullname="Mark Mennell">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="FMSGD" target="https://github.com/markmnl/fmsgd">
        <front>
          <title>fmsgd Reference Host Implementation</title>
          <author initials="M." surname="Mennell" fullname="Mark Mennell">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
    </references>
    <?line 225?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks the early implementers and reviewers of the fmsg specification for their feedback and contributions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
8oPTUnM6pOzGxPjjaLfbzUHS/wX7rSxdeEkAAA==

-->

</rfc>
