[T2TRG] Fwd: Mnot's Pub/Sub for the Web

Carsten Bormann <cabo@tzi.org> Tue, 22 February 2022 18:56 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: t2trg@ietfa.amsl.com
Delivered-To: t2trg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 98F153A13FD for <t2trg@ietfa.amsl.com>; Tue, 22 Feb 2022 10:56:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qN-tzDmTGxnF for <t2trg@ietfa.amsl.com>; Tue, 22 Feb 2022 10:56:52 -0800 (PST)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [134.102.50.15]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B96B3A13D9 for <t2trg@irtf.org>; Tue, 22 Feb 2022 10:56:52 -0800 (PST)
Received: from [192.168.217.118] (p5089ad4f.dip0.t-ipconnect.de [80.137.173.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-smtp.zfn.uni-bremen.de (Postfix) with ESMTPSA id 4K37gj5YltzDCcH; Tue, 22 Feb 2022 19:56:49 +0100 (CET)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_DD853550-E991-48CC-8CCF-36A53B9A0ECB"
X-Mao-Original-Outgoing-Id: 667249009.423659-79911805b2ace8d1123c745ff0d4bab2
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\))
Date: Tue, 22 Feb 2022 19:56:49 +0100
Message-Id: <6CB1C03E-A479-4852-8A63-6A085E478DEA@tzi.org>
References: <8a75a96a-286d-9260-498f-0b7dd8260156@gmail.com>
To: t2trg@irtf.org
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/t2trg/dauuohbJYL32TXp004FqDnmTlBg>
Subject: [T2TRG] Fwd: Mnot's Pub/Sub for the Web
X-BeenThere: t2trg@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IRTF Thing-to-Thing Research Group <t2trg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/t2trg>, <mailto:t2trg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/t2trg/>
List-Post: <mailto:t2trg@irtf.org>
List-Help: <mailto:t2trg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/t2trg>, <mailto:t2trg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 22 Feb 2022 18:57:05 -0000

You may want to follow the below discussion in the httpbis WG.

> Archived-At: <https://www.w3.org/mid/8a75a96a-286d-9260-498f-0b7dd8260156@gmail.com>

The threading on that mail archive is a bit clumsy, but I’m sure the thread will be interesting.

Grüße, Carsten

> Begin forwarded message:
> 
> From: Michael Toomim <toomim@gmail.com>
> Subject: Mnot's Pub/Sub for the Web
> Date: 2022-02-20 at 10:36:33 CET
> To: HTTP Working Group <ietf-http-wg@w3.org>
> Cc: Mark Nottingham <mnot@mnot.net>
> Resent-From: ietf-http-wg@w3.org
> Archived-At: <https://www.w3.org/mid/8a75a96a-286d-9260-498f-0b7dd8260156@gmail.com>
> Message-Id: <8a75a96a-286d-9260-498f-0b7dd8260156@gmail.com>
> 
> Hello, HTTP!
> 
> Today Mark Nottingham posted a great articulation of the issues programmers face when choosing between using SSE, WebSockets, and WebTransports:
> 
> https://www.mnot.net/blog/2022/02/20/websockets <https://www.mnot.net/blog/2022/02/20/websockets>
> I'll attempt to summarize Mark's beautiful insight as: in almost all cases, what the programmer *really* wants is a Pub/Sub protocol, not an arbitrary socket. And we could standardize a Pub/Sub protocol, and that would have great benefits.
> 
> These benefits are real and I think could improve performance dramatically. CDNs could cache realtime updates, not just static data.
> 
> However, I'll take Mnot one further, and propose that when a programmer is choosing a Pub/Sub protocol, what he *really* wants is a State Synchronization protocol, not an arbitrary Pub/Sub protocol.
> 
> He wants to Subscribe specifically to *state updates*. He wants to Publish specifically *updates to state*.
> 
> What we need is not a general Pub/Sub standard, but specifically a State Synchronization standard. State Synchronization is a constrained type of general Pub/Sub. And we'll need to constrain Pub/Sub in this way to address some of the issues Mark brings up, such as:
> 
> > There are also some architectural/philosophical concerns about how non-final responses **relate to the state of the resource**.
> 
> The relationship between a server's "responses" and the "state of the resource" is what a State Synchronization protocol defines. And, in fact, we have two proposed solutions to State Synchronization in the IETF!
> 
> Braid:         https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http>
> Mercure:    https://datatracker.ietf.org/doc/draft-dunglas-mercure/ <https://datatracker.ietf.org/doc/draft-dunglas-mercure/>
> I am seeing a growing awareness that HTTP needs to add State Synchronization abilities, as well as excitement about the new fundamental power it gives programmers on the web.
> 
> 
> These protocols transform HTTP from a State *Transfer* into a State *Synchronization* protocol. Whereas a transfer protocol can move a resource from server to client in a single request/response, it requires an application programmer to take over if the resource ever changes after the response completes. That sucks for programmers. A synchronization protocol provides a much better programming abstraction. The programmer just says "I want state X", and can assume it will be kept up-to-date by the protocol.
> 
> If we standardize this, we also get CDNs that automatically cache dynamic content (the stuff currently hidden within websockets), just as easily as they cache static content today. We get collaborative editing and offline modes available in web apps for free. We also take an important step towards decentralizing the web, by creating an open standard for the trickiest part of decentralized app development — data synchronization — that is compatible with P2P CRDT and OT algorithms.
> 
> Since this all seems to be coming together, I would like to know what HTTPbis as a group thinks. Is there interest in this topic?
> 
> If so, what aspects might we want to work on?
>