Review of draft-toomim-httpbis-versions-00

Michael Toomim <toomim@gmail.com> Mon, 22 July 2024 18:46 UTC

Received: by ietfa.amsl.com (Postfix) id A2B0BC169438; Mon, 22 Jul 2024 11:46:13 -0700 (PDT)
Delivered-To: ietfarch-httpbisa-archive-bis2juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A2033C169435 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 22 Jul 2024 11:46:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.857
X-Spam-Level:
X-Spam-Status: No, score=-2.857 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, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="lOwF15TH"; dkim=pass (2048-bit key) header.d=w3.org header.b="WqgqjhZc"; dkim=pass (2048-bit key) header.d=gmail.com header.b="D0dECd4y"
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 C4x3okQbyc6S for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 22 Jul 2024 11:46:09 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 99AFCC16942D for <httpbisa-archive-bis2Juki@ietf.org>; Mon, 22 Jul 2024 11:46:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:In-Reply-To:References:To:From:MIME-Version:Date:Message-ID: Content-Type:Cc:Reply-To; bh=8TgIEzoNhnFwzsfQwW4e+2byUZ19HeWZl7iWmwgUw4g=; b= lOwF15THolyNKNge2WDYOswQXvDo3+RdQzO/BNRGNmsYJ4T2baoH5BaS0ZVfkUi/RXhmIGb9DWivL jiVrrrzC6UvFAhH9Yu3G0F+YN1/p/DaTm4nxJ8Nc3R9hSTXiUCWtJDYZ6fx4Xmh2X2OVve8Vdbd7z nR1BGcoNEr2c20cdz+hxDBEANIvfNqoRawvw7A6pUvfly8reFIMWeBBr1AnXFJy9wzSYhqzl1xMWF zaeIiMvo/qdIHguGkriliBh8qXEBMjFTw16lxpJg7t5cGSyYU6CaPcdeQeEiOSs8wYBxPZd7jWf0U doa4VHfMW9HEww4D8BNUnlzD8KK61TRCLQ==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sVy2T-00H6RN-0k for ietf-http-wg-dist@listhub.w3.org; Mon, 22 Jul 2024 18:45:37 +0000
Resent-Date: Mon, 22 Jul 2024 18:45:37 +0000
Resent-Message-Id: <E1sVy2T-00H6RN-0k@mab.w3.org>
Received: from ip-10-0-0-144.ec2.internal ([10.0.0.144] helo=pan.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sVy2Q-00H6QS-03 for ietf-http-wg@listhub.w3.internal; Mon, 22 Jul 2024 18:45:34 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=In-Reply-To:References:To:From:Subject:MIME-Version:Date:Message-ID: Content-Type:Cc:Reply-To; bh=8TgIEzoNhnFwzsfQwW4e+2byUZ19HeWZl7iWmwgUw4g=; t=1721673934; x=1722537934; b=WqgqjhZcWBB7etzATNncZZHL7k2uuh8L9QDd0SwL6Jgvbrl C4BXbjZyqQBbrliAv6CNaRSnLYXzkkpOquS5IVeadUCoOajDpDrc+jqOGBRjA04lO9AJ36PGxQMy3 pLXWSN8WrIytGX0KtyjqBKmdo8v1DBnpniQnP+KVWXd5RMSQ96myZxBg2s3wDJp+q9yT39pANbjMu ywkOFlAEQwQa5vt5+gWp3SLgOBfJtmQRcKADPgopqtlZC2tOHw5ZKX/D3uTmvCf5n/m6IbW+lnjtD d4GTQJzOO5weji0nj7LtIx9XnZpTR5D4td6FFO+SoPxKQT1vobFMg3Joh75fLRTw==;
Received-SPF: pass (pan.w3.org: domain of gmail.com designates 2607:f8b0:4864:20::42e as permitted sender) client-ip=2607:f8b0:4864:20::42e; envelope-from=toomim@gmail.com; helo=mail-pf1-x42e.google.com;
Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by pan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <toomim@gmail.com>) id 1sVy2P-00Be4i-0u for ietf-http-wg@w3.org; Mon, 22 Jul 2024 18:45:33 +0000
Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-70d1d6369acso1108485b3a.0 for <ietf-http-wg@w3.org>; Mon, 22 Jul 2024 11:45:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721673928; x=1722278728; darn=w3.org; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=8TgIEzoNhnFwzsfQwW4e+2byUZ19HeWZl7iWmwgUw4g=; b=D0dECd4ywepPG6jXR9cqqpR3XExjCz1sprhJN7rcojN+9zqr+kZPavezvIJUcbvhKc yIiiNTWXqYW1LWqT3wvij6KMLgUB7LQYoj1WXMWU+1t6eVT1f3ZUXLZiT1yo/8vBQOwf IGiEBVeZSLWr0itwSCxx3G7sufhShSyACiOzU8YUvU2xBOyRPkyPV9dUYpGMFernYlFq 9PDA+M2z7RQiwmwG1b0F3RoQngaHi+d8v0cA8cgrwpTDlk79Q3H/d4YpRK6JoA4Jplex loOvfVfmf2sz0BlvEyKnitqyic9YoRMEz3XL5Ahox1Lhq+DxWO/9fOxaSSIxLZiV/HOZ TbWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721673928; x=1722278728; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=8TgIEzoNhnFwzsfQwW4e+2byUZ19HeWZl7iWmwgUw4g=; b=mhsvezQbhxh2XBFljeSSR90Q1zgfHafbblz+T/cz8QK43MzASCqjTDwjjeXUHFGGbq 45SNLFLZohkWuyJLP0sxwV6Ec/YnsaFqftqtguPumoqTJKfWnvrYpSeBq1Rr9RiPZC0l UsT23pDCcN3+sQf0nQhNd+S8AghvX99FKSXX0gTV3tH6fwM+0hk9nPgyBwNp4Pop2eaN jQ8qW9pqTSfIkLVBjsxlD1MU+PYYSAiCGQ1sUECs/IZb62H4m20LmFcfeJAekn+0JMpe APlNzyoVVdHqj/ncK4syD76KIdQpRQROXavdHZ/1cYFTQHAZ2ZmVVD2Pe4KVgXbEvCx0 Rmaw==
X-Gm-Message-State: AOJu0YyvRe3ddBvV6zv/g409HVqqzBLs1/v/igfF0nNfLK49PnrglHAE uxgUI8IKo+eX8IpEw/ytpc01XIAxgBArJ++8PCT/XOCvo6dFeDyqhMPhYvMUoQ0=
X-Google-Smtp-Source: AGHT+IFsI9OWXYM7WtogMSEvf1xyk1w5fxjv+SRwCoVJO91xgUx6JZik/DmrlN9J9BTe8hfC2BtHMw==
X-Received: by 2002:a05:6a21:999c:b0:1c0:bd6c:aabc with SMTP id adf61e73a8af0-1c423ac8920mr14936304637.7.1721673928196; Mon, 22 Jul 2024 11:45:28 -0700 (PDT)
Received: from ?IPV6:2001:67c:370:128:2ca2:840:5af6:a931? ([2001:67c:370:128:2ca2:840:5af6:a931]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-79f0f2678cdsm4967252a12.80.2024.07.22.11.45.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 22 Jul 2024 11:45:27 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------bl2pdmJna0CA3DdR243es2Ev"
Message-ID: <e2986010-73db-4e85-8d7f-941c9037581d@gmail.com>
Date: Mon, 22 Jul 2024 11:45:26 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Michael Toomim <toomim@gmail.com>
To: HTTP Working Group <ietf-http-wg@w3.org>, Braid <braid-http@googlegroups.com>, Pierre Chapuis <catwellggl@gmail.com>
References: <172046173132.445281.15041630415895010148@dt-datatracker-5f88556585-j5r2h> <ff54cd4f-c30e-4447-8744-3297e53b74be@gmail.com>
Content-Language: en-US
In-Reply-To: <ff54cd4f-c30e-4447-8744-3297e53b74be@gmail.com>
X-W3C-Hub-DKIM-Status: validation passed: (address=toomim@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: pan.w3.org 1sVy2P-00Be4i-0u 2bf8439b0fc32d9186d132ce8ddf5d86
X-Original-To: ietf-http-wg@w3.org
Subject: Review of draft-toomim-httpbis-versions-00
Archived-At: <https://www.w3.org/mid/e2986010-73db-4e85-8d7f-941c9037581d@gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52092
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

I'm also merging Pierre Chapuis' comments into this thread. Pierre is 
cc'd, and we can respond here.

------------------
-- Pierre Chapuis: --
------------------

Hello everyone,

this email got me interested. I have been silently following the 
progress on Braid for a while. I have worked with various data 
replication and synchronization techniques (including CRDTs and others 
<https://blog.separateconcerns.com/2017-05-07-itc.html>) and a HTTP 
standard for resumable feeds is something I have wanted for a long time, 
to support use cases similar to HTTP Feeds <https://www.http-feeds.org>.

Here is a small observation I have from reading the draft. In "4. 
Version-Type Header", regarding the vector-clock type, did you consider 
the alternative of just using parents instead of the complex dedicated 
version format, where each Parent would be of the form "agentidX: 
counterX"? If the data is modified, the Version response header could 
potentially be used for the current "server" node.

For instance, considering a CRDT implementation, if the "client" Bob is 
at {alice: 2, bob: 2, charlie: 3} and the "server" Alice is at {alice: 
3, bob: 2, charlie: 4}, and Bob submits a new version, the request 
headers could be:

Version: "bob: 3"
Parents: "alice: 2", "bob: 2", "charlie: 3"

and the response headers could would be:

Parents: "alice: 3", "bob: 3" , "charlie: 4"

Best,

-- 
Pierre Chapuis

On 7/15/24 6:26 PM, Michael Toomim wrote:
>
> Hi everyone in HTTP!
>
> Last fall we solicited feedback on the Braid State Synchronization 
> proposal [draft 
> <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http-04>, 
> slides 
> <https://datatracker.ietf.org/meeting/118/materials/slides-118-httpbis-braid-http-add-synchronization-to-http-00>], 
> which I'd summarize as:
>
>     "We're enthusiastic about the general work, but the proposal is
>     too high-level. Break the spec up into multiple independent specs,
>     and work bottom-up. Focus on concrete 'bits-on-the-wire'."
>
> So I'm breaking the spec up, and have drafted up the first chunk for 
> you. I would very much like your review on:
>
>     *Versioning of HTTP Resources*
>     draft-toomim-httpbis-versions
>     https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions-00
>
> Versioning is necessary for state synchronization—and occurs in a 
> range of HTTP systems:
>
>   * Caching
>   * Archiving
>   * Version Control
>   * Collaborative Editing
>
> Today, HTTP has resource versions in the Last-Modified and ETag 
> headers, and sometimes embeds versions in URLs, like with WebDAV. Each 
> of these options serves some needs, but also has specific limitations. 
> An improved general approach is proposed, which provides new features, 
> that could enable cool new applications, such as incrementally-updated 
> RSS feeds, and could simplify existing specifications, such as 
> resumeable uploads, and history compression in OT/CRDT algorithms.
>
> I would love to know if people find this work interesting. I think we 
> could improve performance, interoperability, and be one step closer to 
> having Google Docs power within HTTP URLs.
>
> Michael
>
> -------- Forwarded Message --------
> Subject: 	New Version Notification for 
> draft-toomim-httpbis-versions-00.txt
> Date: 	Mon, 08 Jul 2024 11:02:11 -0700
> From: 	internet-drafts@ietf.org
> To: 	Michael Toomim <toomim@gmail.com>
>
>
>
> A new version of Internet-Draft draft-toomim-httpbis-versions-00.txt 
> has been
> successfully submitted by Michael Toomim and posted to the
> IETF repository.
>
> Name: draft-toomim-httpbis-versions
> Revision: 00
> Title: HTTP Resource Versioning
> Date: 2024-07-08
> Group: Individual Submission
> Pages: 19
> URL: https://www.ietf.org/archive/id/draft-toomim-httpbis-versions-00.txt
> Status: https://datatracker.ietf.org/doc/draft-toomim-httpbis-versions/
> HTMLized: 
> https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions
>
>
> Abstract:
>
> HTTP resources change over time. Each change to a resource creates a
> new "version" of its state. HTTP systems often need a way to
> identify, read, write, navigate, and/or merge these versions, in
> order to implement cache consistency, create history archives, settle
> race conditions, request incremental updates to resources, interpret
> incremental updates to versions, or implement distributed
> collaborative editing algorithms.
>
> This document analyzes existing methods of versioning in HTTP,
> highlights limitations, and sketches a more general versioning
> approach that can enable new use-cases for HTTP.
>
>
>
> The IETF Secretariat
>
>