Re: [dispatch] Proposal for Per Resource Events Protocol

Michael Toomim <toomim@gmail.com> Thu, 02 November 2023 22:11 UTC

Return-Path: <toomim@gmail.com>
X-Original-To: dispatch@ietfa.amsl.com
Delivered-To: dispatch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 284D2C151542 for <dispatch@ietfa.amsl.com>; Thu, 2 Nov 2023 15:11:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.196
X-Spam-Level:
X-Spam-Status: No, score=-7.196 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.091, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j_l0SrLuyIXt for <dispatch@ietfa.amsl.com>; Thu, 2 Nov 2023 15:11:12 -0700 (PDT)
Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 794DBC151536 for <dispatch@ietf.org>; Thu, 2 Nov 2023 15:11:12 -0700 (PDT)
Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-6c3363a2b93so972167b3a.3 for <dispatch@ietf.org>; Thu, 02 Nov 2023 15:11:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698963072; x=1699567872; darn=ietf.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=M90nyOgU1OBDd7DX3yn+h9YPglHICi65M9fNh28dFVQ=; b=G+cI7Fdo233ftLz2vxLo/usuRJzMM3NTjuzuREhHMlr2s2ZkGr8z5TrhzccC4mTLF0 i+OfCLFQdoqEAV+IB0c7l//KVapr7k4ApbDKh3P7IyUe4gmUj0/22GKKVl+LECT0Url5 YcMpWUiHj6eeCKjv5zmCZqOzkQlb8nUpQGlDXAb52nVIHHybm0t5yTdMZeWngM94vD/S g40wa02AhwmqNHjxFWLpvgPngc+5HtLy2D0WOzIuWvs9Knso3mDWd3ZeAOZ38T8/FLUG /6rgL/aQDtH7sJx0CWu0S2Ncv7jNyTESMR+6vtNuvHQd0CtmlCBQfyLRzuKh8qjJDIQ3 Ugwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698963072; x=1699567872; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=M90nyOgU1OBDd7DX3yn+h9YPglHICi65M9fNh28dFVQ=; b=DsUChWI8sh99K9HsWZ7W11Ob0OzgOhc/lqU9uaXjSZr8UHIs2o74Y61HTIaol049+m C7tadfoDJn8tvuaMwzhFJiNdELsQlAOFg3NvzV77QiSDYEfl50Ksh/mWF6/ctPK8ZBVG X+ofWMF3wqCisrOB42BqfQC0xJYdJCV/4pADT4iPx+lO+itztL6o6lC6Eq9D1JIACeoK asyc6JwqjmMihyzQy8YFVYDtyzAQVB3Un1/UKIFqSe0x1zZQenuYNqzstX0hlaSgpLVK VSmCAqaw/LJwO2FJeaNtNYRu6MAUhHzG9VmTyNIgKWc6DLit5Qmxosl7MXxkeJTcrY70 x+Zg==
X-Gm-Message-State: AOJu0YwBUpqOly/OCxzIS36xRjby6c/XWpbAHkS15bEwqnLBtAmV0kyy 8SuYNyvtvjDu/OxYShSJT1Q=
X-Google-Smtp-Source: AGHT+IGnW4iVVBdP1SHa7rwTybK52KTxxqbxTRn7rgSkKIKeaS/030EadBqHj7l5pDRbayueiVMMng==
X-Received: by 2002:a05:6a00:99e:b0:68a:59c6:c0a6 with SMTP id u30-20020a056a00099e00b0068a59c6c0a6mr23579025pfg.24.1698963071763; Thu, 02 Nov 2023 15:11:11 -0700 (PDT)
Received: from [172.31.224.216] ([216.9.110.14]) by smtp.gmail.com with ESMTPSA id f10-20020a056a00228a00b006c1221bc58bsm205893pfe.115.2023.11.02.15.11.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Nov 2023 15:11:11 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------aRH8ESRcAw34qm1lgiBJBZv6"
Message-ID: <8b2c6d87-3d89-31fe-9338-c429b3bc6e8c@gmail.com>
Date: Thu, 02 Nov 2023 15:11:07 -0700
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.14.0
Content-Language: en-US
To: Kévin Dunglas <kevin@dunglas.fr>, Rahul Gupta <cxres=40protonmail.com@dmarc.ietf.org>
Cc: dispatch@ietf.org, HTTP Working Group <ietf-http-wg@w3.org>
References: <87lebuz6nh.fsf@hobgoblin.ariadne.com> <o_LYdaByeDM_mxWhT6OO5PR8fya6PrYRVXreGZ8Ks6ncDUVOlZa-q7JnIHISCwrJucrxxQm0fgJBS9Fbg0HNfwZXQwBXhhSf3lsbXwcTuPQ=@protonmail.com> <CADU7aotY+EL8vJYZAXAUrubfOCUJbWYUzYUGB+HmeyJyupYUyw@mail.gmail.com>
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <CADU7aotY+EL8vJYZAXAUrubfOCUJbWYUzYUGB+HmeyJyupYUyw@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/Fd5JuRKxqX02KWv6EC2ZVqazsvo>
Subject: Re: [dispatch] Proposal for Per Resource Events Protocol
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: DISPATCH Working Group Mail List <dispatch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dispatch>, <mailto:dispatch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dispatch/>
List-Post: <mailto:dispatch@ietf.org>
List-Help: <mailto:dispatch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dispatch>, <mailto:dispatch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Nov 2023 22:11:17 -0000

Hi Kevin!

I am grateful for your continued work on HTTP Subscriptions, and would 
be very happy to help make these approaches (Mercure, PREP, Braid-HTTP) 
work together, ideally in a unification that meets everyone's needs. It 
also might be educational to implement a babelfish that lets the 
protocols talk to one another by translating their messages.

Since this conversation began, the chairs have suggested moving it to 
HTTPbis (cc'd) from Dispatch. So I am cc'ing HTTPbis on this email, and 
Rahul and I will be presenting PREP and Braid-HTTP at the HTTPbis 
meeting next Thursday or Friday in Prague: 
https://datatracker.ietf.org/doc/agenda-118-httpbis/ Maybe you would 
like to tune in and comment?

(I will still present the idea of a new State Sync Working Group in 
Dispatch on Monday.)

At this meeting, I am calling for HTTPbis to adopt work on 
Subscriptions—something to implement the core functionality that we all 
want with Mercure, PREP, and Braid. The resulting specification could 
end up looking like Mercure, PREP, Braid, or something else. See 
https://lists.w3.org/Archives/Public/ietf-http-wg/2023OctDec/0120.html

Cheers!

Michael

On 11/2/23 10:13 AM, Kévin Dunglas wrote:
> Hi Rahul,
>
> Our team has been working for several years on a very similar protocol 
> called Mercure:
>
> * Up-to-date spec: https://mercure.rocks/spec
> * Older I-D: https://www.ietf.org/archive/id/draft-dunglas-mercure-06.html
>
> The main difference is that we basically "ported" and extended the 
> WebSub protocol (https://www.w3.org/TR/websub/) ro work over SSE.
> This approach has the benefits of working everywhere (even in HTTP/1.1 
> contexts), to be easy to make compatible with environments not able to 
> maintain persistent connections (PHP, serverless, CGI etc) and to be 
> very easy to implement (no code nor SDK required client-side).
>
> Also, Mercure is already implemented and used in the wild by a lot of 
> existing apps, and free software tools (including the popular Symfony 
> web framework): https://mercure.rocks/spec#implementation-status
> It also a very dynamic community on GitHub: 
> https://github.com/dunglas/mercure
>
> Our previous attempt to "promote" the spec as a RFC didn't get much 
> feedback 
> (https://lists.w3.org/Archives/Public/ietf-http-wg/2020JulSep/0020.html) 
> so we are in the process of submitting the spec as independent submission.
>
> I'm glad to see that there seems to be a desire to standardize 
> something on this subject (PREP, Braid...).
>
> Would you and Michael be available to discuss how both specs can work 
> together?
>
> Best regards,
>
>
> On Mon, Oct 23, 2023 at 7:30 AM Rahul Gupta 
> <cxres=40protonmail.com@dmarc.ietf.org> wrote:
>
>     Dale,
>
>     Thank you (again!) for your interest and feedback. See responses
>     interleaved!
>
>     BR/Rahul
>
>     ------- Original Message -------
>     On Monday, October 23rd, 2023 at 3:00 AM, worley@ariadne.com
>     <worley@ariadne.com> wrote:
>
>
>     > Rahul Gupta cxres=40protonmail.com@dmarc.ietf.org writes:
>     >
>     > > I have submitted my proposal for the Per Resource Events
>     > > https://github.com/CxRes/prep Protocol as an
>     > > Internet-Draft
>     > >
>     https://datatracker.ietf.org/doc/draft-gupta-httpbis-per-resource-events/
>     >
>     >
>     > A few bits:
>     >
>     > - Section 5.1 seems to introduce "event fields" but it doesn't
>     provide
>     > any description of what they are. This is particularly treacherous
>     > because the use of "fields" in "event fields" evidently does not
>     mean
>     > exactly the same thing as "header fields" (as event fields aren't
>     > header fields), but are likely to have the same names as header
>     > fields, and event fields have values in some (different) way, which
>     > values have similar semantics to the corresponding header field
>     > values.
>
>     I do explicitly define "event fields" in 3.5 Terminology.
>
>     Would you like me to expand on it or put it in a different manner?
>     Or would you like a more explicit link back on first use in each
>     major section?
>
>     >
>     > - A few fairly complete examples would help. In particular, I think
>     > that the concept is that PREP is started by the client sending a GET
>     > containing the appropriate headers, then the server sends the header
>     > of a response containing the appropriate headers, then the first
>     part
>     > of a multipart body and the first body part (containing the current
>     > state of the resource), then a multipart divider ... then possibly a
>     > delay ... then a second body part (containing the first update),
>     then
>     > a multipart divider ... then possibly a delay ... But I don't think
>     > this is stated clearly near the beginning, nor is a complete example
>     > given.
>
>     Given that you seem to describe PREP so well, it feels like the
>     situation is pretty good ;). There is also a cultural aspect here,
>     I am still relatively unfamiliar with the expectations of IETF/RFC
>     readers. So, let me ask you how you might approach this…
>
>     1. Would you like a complete example, say as an unnumbered section
>     at the end (linked from the introduction)?
>     2. Do you want me to expand "1.2 How it works" a bit?
>
>     >
>     > - Do you have an initial application? It always helps to get
>     traction
>     > if you have an existing need that can be satisfied, or better,
>     two or
>     > three.
>
>     There is interest in Solid community to implement this (This work
>     as I stated in my original post came about because of my work on
>     Solid Notifications Protocol. The community has a real desire in
>     Solid for a simpler notifications system). There is a (public)
>     expression of interest from a private server developer and
>     discussions with open source server implementers. This was held
>     back in part because I only last night released the companion
>     specification that links Solid and PREP, conveniently called
>     Solid-PREP <https://cxres.github.io/solid-prep/protocol/>. So
>     implementations are likely to come online more in time for IETF
>     119, unfortunately.
>
>     >
>     > - There's some sort of index at the end, but it's difficult to
>     read, and
>     > it appears to only be a list of places where specified terms appear.
>     > This doesn't add much value, since every tool a person might use to
>     > look at draft-gupta-httpbis-per-resource-events has a string-search
>     > capability.
>     >
>
>     This index is auto generated by RFC tooling (I only mark words
>     that I want indexed, because I want them recorded as significant
>     terms in the XML). I find the generated index unintuitive too.
>     Please complain loudly :P to the RFC tooling folks as this affects
>     every I-D!
>
>     > Dale
>     >
>     > _______________________________________________
>     > dispatch mailing list
>     > dispatch@ietf.org
>     >
>     https://www.ietf.org/mailman/listinfo/dispatch_______________________________________________
>     dispatch mailing list
>     dispatch@ietf.org
>     https://www.ietf.org/mailman/listinfo/dispatch
>
>
> _______________________________________________
> dispatch mailing list
> dispatch@ietf.org
> https://www.ietf.org/mailman/listinfo/dispatch