- 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