Return-Path: <eli@stream.place>
X-Original-To: atp@mail2.ietf.org
Delivered-To: atp@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1])
	by mail2.ietf.org (Postfix) with ESMTP id 04D3E116F9D61
	for <atp@mail2.ietf.org>; Tue, 14 Jul 2026 21:17:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1;
	t=1784089052; bh=0FSiFhZl3VPwikfR5DzfGPzAC6IMRfvc+RCssZ04PW0=;
	h=From:Date:Subject:To;
	b=c6e8SZmo9iygv8gTOZafPlFCxFkatJu4cgRHTA12e4GYpDYJjGv3mEl5bMvB2akCj
	 /Sx2GeGDKAuyKaGtHswjIQOeB4tmHoAmJCbcjuMld2v0XOkStKnyC5xxwGnvW4mCaJ
	 CBUFAjOOV+8AQBeaX8iwGBWxeTEgR21aN4qQETQU=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level: 
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5
	tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
	HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
	SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01]
	autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key)
	header.d=stream-place.20251104.gappssmtp.com
Received: from mail2.ietf.org ([166.84.6.31])
	by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id Bg7IfFLXcU-l for <atp@mail2.ietf.org>;
	Tue, 14 Jul 2026 21:17:31 -0700 (PDT)
Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com
 [IPv6:2607:f8b0:4864:20::42b])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256)
	(No client certificate requested)
	by mail2.ietf.org (Postfix) with ESMTPS id 269E8116F9D56
	for <atp@ietf.org>; Tue, 14 Jul 2026 21:17:31 -0700 (PDT)
Received: by mail-pf1-x42b.google.com with SMTP id
 d2e1a72fcca58-84862b0d5f8so1526147b3a.3
        for <atp@ietf.org>; Tue, 14 Jul 2026 21:17:31 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1784089050; cv=none;
        d=google.com; s=arc-20260327;
        b=ZpPvT/1ErGNPdIRx63hLIEzyWsAVe2HBgMegZPpq1qRFvKUWCRyhIzj9DlrLIRAlht
         LHai35rL6AiOvwGoho3RXET+U4CJWJEIkluvv3PqqLrc5s6w4GSPnDoaCojSRpSkaGL1
         DKWWR/wbuvjuJPukYDyK7eUS0Z0oFcY7d6zC9Rm1EBnBtsSjY2YwdI/MEhpgddt5L4VL
         CwVC7IZ6/rJUKZ6iaYw720Urzy/jDJpEAv/ImcUEb2NZh0FMs9da2xDXTyk9RYZIji9k
         woHoc+umsbEji1sOu4EgzzGBm0AmbzTaTGjyaWTh5Z/JG1ApGVpkDwA2O9NsrguA9Ne6
         Z2aQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20260327;
        h=to:subject:message-id:date:from:mime-version:dkim-signature;
        bh=0FSiFhZl3VPwikfR5DzfGPzAC6IMRfvc+RCssZ04PW0=;
        fh=Ey4raUt1O8w4kZJlRV+d2BKKjWnLGEvIFibDo3ZjRYI=;
        b=ARPiBCghYqdoI18o7rWR6FGRQ4OYhRT9e4+VDSCsdz4QmFsOfZ10T/qEndB4rqv76M
         cEYHYcbeb2jRmJErWKd1xb7SiWvsHKarV0McYVd7v4LSXKqYfknkJ0Dr6dfYk5rW0Zc6
         /esInB0REouQXD+1hOxkhr+BDdt2ebdgWW4tU59Sweq2bfoBwX663xgrpSERaUswzA1C
         ZJzfizaHDq05RhKk7J/6w2mkEwJ6fxvOb1KQ5pqeKAlbK8osrr7wOSH8JAemj/hMjb5j
         R93y5EKi1newkBFl3flqPIyoLcfIu1vcMoH/7gPOaqo2mJYdhHYl29aIrCZ2j10X++BR
         GgLw==;
        darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=stream-place.20251104.gappssmtp.com; s=20251104; t=1784089050;
 x=1784693850; darn=ietf.org;
        h=content-type:to:subject:message-id:date:from:mime-version:from:to
         :cc:subject:date:message-id:reply-to:content-type;
        bh=0FSiFhZl3VPwikfR5DzfGPzAC6IMRfvc+RCssZ04PW0=;
        b=dSTFLzZeOZEs5MJtYTnZDAUidXQcVRb5ppPoM1zVnxtJg1c0KAF3x3Ec+gtNd7qgUu
         lhVZ9q631UE4A9Agv6ytpTskLGW6fpsh0LIT82tCjHFjd+8aJbed8cVAw9rn7xenYaqw
         VT0uuKTXZ0yOloC/WFFn3FMrk6U9wCxlzgcCC6QKuc0RuRiHsv+v6WoaG5KwNK3jmxX/
         3HQqIbQsY8ev2WLO+JFHLgpZRxhvD6X+8EXiRVb1IAMvEC6SEaWcEwrMtn0fC/Ym5/GT
         p1uziOloYED+oxPVuYOSWDG5AWBTzchZeA+8XZQk5GapZBjT4jQ8E6RHvNqwtaMSm7Ty
         GlLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1784089050; x=1784693850;
        h=content-type:to:subject:message-id:date:from:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=0FSiFhZl3VPwikfR5DzfGPzAC6IMRfvc+RCssZ04PW0=;
        b=IdkP6z2f8QglzK1LU2o9L1+qH80BleJ07f6Lbp42W5hCBz3lVZLJLPQoj5Km5mMLvC
         UXhN1a08ZzNr5i2HLX6Sx4tEZHQwMnxTFKJChRkB6JtSWBxJGOC4BFO0wy5i5Uiy7L7I
         zd70dMMYT/baU5tU4xKeJO1fEtzobQZ8ujUkn20o7EF7NZe/4v/thqddcxd6hZRPJicF
         IsYFDZYp/4/UP/3qW0MxQtptl7K/ujzyTOSEk5SSLkcUty217djG0XtDp5ZsoY1pF/po
         V3W1b6ix4V84wI934ipokl4hbWDdpV09eg44wzkfWwTpwsN6km+xQ3UUQ3m5XA2ZpvVT
         yn6Q==
X-Gm-Message-State: AOJu0YxJ40UwVKWGu34SKiHU2vNLlE8+WFg3Fxd2mnTN0rXh7a+NyAMv
	5ZdpvmaB7PDdnc/MmE/IZ3vIk/HPIyFDVjrsSLh5REzkpxv73kyXid0sBzcKKvDSFzCIq5/Echg
	AI06aswkw9k5PFQXcn+v1vH62ab0RFtthP8HBTFnmAaHcxtr+y05l48g=
X-Gm-Gg: AfdE7cnQho3e3UDqvHzwkMw+MiatdKSDEq1/NWv5pwdhy9Ak8/N2XORjZP/jy4Dshpf
	GjW0FgO84kWUxVZvpPQ1KMt20ZzQACkluutVm9UqAVKikkh3YEpfWhY/+B5gfvcv5a+Y/FikxMY
	RmIbaxyjhMJEYlgcewZxGzgt62akbevWJT+GkXVa+QrO9V2UFIHRfNN0ZXwpLBPc0VJp+sakizH
	78arh9Rhay/T/eU905IIWMTyqYbY4pM7bTgKXEpxuni1tN1axbDN7UJds8z2xdu0VGtLIiZ9Kw/
	vhKwdptA/BBVNKEFzmx056C4xUsA4quid2vH0kl3Z1zZeonOjyTg4nrypw==
X-Received: by 2002:a05:6a00:451c:b0:848:812b:848a with SMTP id
 d2e1a72fcca58-84889629ac6mr14977117b3a.33.1784089050034; Tue, 14 Jul 2026
 21:17:30 -0700 (PDT)
MIME-Version: 1.0
From: Eli Mallon <eli@stream.place>
Date: Tue, 14 Jul 2026 21:17:17 -0700
X-Gm-Features: AUfX_mzEiwFnVMVU4XjxF8rJl8sGdte0c27R6I1U8XMdkBvvXtSM4S5GrTSvPd8
Message-ID: 
 <CAJ_8DJ4nxZTQQ-gcM8doFMQjVA_AtsvfL1aiBUk=+NxMqK7kOA@mail.gmail.com>
To: atp@ietf.org
Content-Type: multipart/alternative; boundary="0000000000001344f606569e9adc"
Message-ID-Hash: 46Q3ELZH3ZGYNW6DFPXNHWFMKKFY7IXD
X-Message-ID-Hash: 46Q3ELZH3ZGYNW6DFPXNHWFMKKFY7IXD
X-MailFrom: eli@stream.place
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency;
 loop; banned-address; member-moderation; nonmember-moderation; administrivia;
 implicit-dest; max-recipients; max-size; news-moderation; no-subject;
 digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5BAtp=5D_atmoq=3A_ATProto_over_Media_over_QUIC_Transport?=
List-Id: Authenticated Transfer <atp.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/atp/byiE6I59R66dfxO74chBp54ctfo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/atp>
List-Help: <mailto:atp-request@ietf.org?subject=help>
List-Owner: <mailto:atp-owner@ietf.org>
List-Post: <mailto:atp@ietf.org>
List-Subscribe: <mailto:atp-join@ietf.org>
List-Unsubscribe: <mailto:atp-leave@ietf.org>

--0000000000001344f606569e9adc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

My name is Eli Mallon, I'm the creator of Streamplace
<https://stream.place/>; livestreaming and VOD on the AT Protocol. (If
Bluesky is working on Twitter on atproto, we're working on Twitch and
YouTube.) Very excited for our first WG meeting next week!

In March, Suhas Nandakumar and Cullen Fluffy Jennings submitted
draft-nandakumar-atproto-atom-00
<https://datatracker.ietf.org/doc/draft-nandakumar-atproto-atom/>: a spec
to relay atproto data over Media over QUIC Transport (and thus
WebTransport) instead of the current implementations that use WebSockets.
Streamplace's work sits right at the intersection of media and atproto, so
this felt perfectly targeted at us!

The idea is exciting for a few reasons. On a basic level, MOQT is a
lower-latency and higher-throughput protocol than WebSocket, providing us a
solid protocol-level option when we get to the point where sending the
entire global atproto firehose over a single WebSocket becomes unrealistic.

But to me the headline is this: atproto relaying over MOQT means atproto
firehose data could be broadcast over generic MoQ relays, piggybacking on
the substantial effort that is going into the next generation of
low-latency global media distribution. Currently, fan-out for atproto
relays is handled with services like Bluesky's rainbow
<https://github.com/bluesky-social/indigo/tree/main/cmd/rainbow>; custom
atproto-aware software purpose-built for fanout. A MOQT implementation
would instead allow us to instead use off-the-shelf MoQ relays like the big
public one that Cloudflare operates <https://developers.cloudflare.com/moq/=
> or
the global networks being built out by Cisco and Akamai.

We've recently completed an initial implementation of the spec called atmoq
<https://github.com/streamplace/atmoq>, which includes a Rust server (that
sits in front of an upstream WebSocket relay) and Rust, Go, and TypeScript
client implementations. The implementation diverges from the spec in some
ways =E2=80=94 not everything in the atproto universe *quite* cleanly mappe=
d onto
MOQT primitives =E2=80=94 but overall the system works quite well. My prese=
ntation
next week will go into detail, but some brief highlights:

* Tested and working with the public atproto relays at Cloudflare and
moq.dev.
* In addition to the "everything" track that provides all the data, each
separate user is made available as a their own track, facilitating use
cases where you only care about syncing a small number of users.
* Tested and working in-browser.

We're operating a public atmoq relay at streamplace.network, please feel
free to try it out. Happy to answer any questions; otherwise looking
forward to presenting next week.

Thank you!
Eli

--0000000000001344f606569e9adc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi all,<div><br></div><div>My name is Eli Mallon, I&#39;m =
the creator of <a href=3D"https://stream.place/">Streamplace</a>; livestrea=
ming and VOD on the AT Protocol. (If Bluesky is working on Twitter on atpro=
to, we&#39;re working on Twitch and YouTube.) Very excited for our first WG=
 meeting next week!</div><div><br></div><div><span style=3D"background-colo=
r:transparent">In March, Suhas Nandakumar and Cullen Fluffy Jennings submit=
ted</span>=C2=A0<a href=3D"https://datatracker.ietf.org/doc/draft-nandakuma=
r-atproto-atom/">draft-nandakumar-atproto-atom-00</a>: a spec to relay atpr=
oto data over=C2=A0Media over QUIC Transport (and thus WebTransport) instea=
d of the current implementations that use WebSockets. Streamplace&#39;s wor=
k sits right at the intersection of media and atproto, so this felt perfect=
ly targeted at us!</div><div><br></div><div>The idea is exciting for a few =
reasons. On a basic level, MOQT is a lower-latency and higher-throughput pr=
otocol than WebSocket, providing us a solid protocol-level option when we g=
et to the point where sending the entire global atproto firehose over a sin=
gle WebSocket becomes unrealistic.</div><div><br></div><div>But to me the h=
eadline is this: atproto relaying over MOQT means atproto firehose data cou=
ld be broadcast over generic MoQ relays, piggybacking on the substantial ef=
fort that is going into the next generation of low-latency global media dis=
tribution. Currently, fan-out for atproto relays is handled with services l=
ike Bluesky&#39;s <a href=3D"https://github.com/bluesky-social/indigo/tree/=
main/cmd/rainbow">rainbow</a>; custom atproto-aware software purpose-built =
for fanout. A MOQT implementation would instead allow us to instead use off=
-the-shelf MoQ relays=C2=A0<span style=3D"background-color:transparent">lik=
e </span><a href=3D"https://developers.cloudflare.com/moq/" style=3D"backgr=
ound-color:transparent">the big public one that Cloudflare operates</a>=C2=
=A0or the global networks being built out by Cisco and Akamai.</div><div><b=
r></div><div>We&#39;ve recently completed an initial implementation of the =
spec called <a href=3D"https://github.com/streamplace/atmoq">atmoq</a>, whi=
ch includes a Rust server (that sits in front of an upstream WebSocket rela=
y) and Rust, Go, and TypeScript client implementations. The implementation =
diverges from the spec in some ways =E2=80=94 not everything in the atproto=
 universe <i>quite</i>=C2=A0cleanly mapped onto MOQT primitives =E2=80=94 b=
ut overall the system works quite well. My presentation next week will go i=
nto detail, but some brief highlights:</div><div><br></div><div>* Tested an=
d working with the public atproto relays at Cloudflare and <a href=3D"http:=
//moq.dev">moq.dev</a>.</div><div>* In addition to the &quot;everything&quo=
t; track that provides all the data, each separate user is made available a=
s a their own track, facilitating use cases where you only care about synci=
ng a small number of users.</div><div>* Tested and working in-browser.</div=
><div><br></div><div>We&#39;re operating a public atmoq relay at <a href=3D=
"https://streamplace.network">streamplace.network</a>, please feel free to =
try it out.=C2=A0<span style=3D"background-color:transparent">Happy to answ=
er any questions; </span>otherwise looking<span style=3D"background-color:t=
ransparent"> forward to presenting next week.</span></div><div><br></div><d=
iv>Thank you!</div><div>Eli</div></div>

--0000000000001344f606569e9adc--

