- From: Michael Toomim <toomim@gmail.com>
- Date: Mon, 22 Jul 2024 11:45:26 -0700
- To: HTTP Working Group <ietf-http-wg@w3.org>, Braid <braid-http@googlegroups.com>, Pierre Chapuis <catwellggl@gmail.com>
- Message-ID: <e2986010-73db-4e85-8d7f-941c9037581d@gmail.com>
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
>
>
Received on Monday, 22 July 2024 18:45:34 UTC