Subject: Fresh Braid Release!

From: Michael Toomim <[email-masked]>
Date: Tue, 19 Nov 2019 19:25:48 -0800

Hey Singapore--  I'm stoked to announce a new version of the Braid spec!

There was considerable interest in draft-toomim-braid-00 in Montreal, which helped illuminate some issues while attracting new contributors.  Together we have now rewritten the spec, and addressed the issues!  We want to hear what you think!

Braid is a set of extensions that generalize HTTP [RFC7230] from a state *Transfer* to a state *Synchronization* protocol:

   Braid-HTTP:  https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http
   Range Patch: https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-range-patch
   Merge-Types: https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-merge-types

The Braid extensions add these features:

   1. Versioning for resources
   2. Subscriptions for GET requests
   3. Patches built on Range Requests
   4. Merge-Types that specify OT or CRDT behavior

These features enable:

   • Realtime updates via dynamic proxies
   • Offline mode
   • Collaborative editing
   • Version-control
   • Eventual consistency under multiple writers

The new Braid draft builds on existing HTTP features -- a big improvement, IMO.  It turns out that HTTP [RFC7230] through [RFC7234] is very close to synchronization already -- it just needs a few things.  The Braid extensions complete synchronization with 5 new headers, 1 new response code, 2 range units, and 1 new registry.  In the process, it generalizes Range Requests [RFC7234] in a cool way, creating a uniform patch format for any existing Range Unit.  And guess what?  Well, it turns out that Julian Reschke and others had this idea in 2008: https://lists.w3.org/Archives/Public/ietf-http-wg/2008JanMar/0304.html, and Austin Wright had a complementary idea -- using Range Requests to upload large files with resume support -- just this last summer: https://lists.w3.org/Archives/Public/ietf-http-wg/2019JulSep/0066.html.  Braid supports both situations.

The group of Braid contributors is growing.  Seph Gentle designed the initial architecture, with help from Sarah Allen.  Mitar Milutinovic wrote the Range Patch spec, and gave great reviews for all specs.  Bryn Bellomy fleshed out key details, such as OPTIONS.  The work was inspired by feedback from Austin Wright, Martin Thomson, Eric Kinnear, Duane Johnson, and recently Julian Reschke.  Thank you guys!

Many people are joining us from the distributed web community.  In the big picture, I see Braid as an effort to transfer the people and ideas of the distributed web into the existing web.  Together, we synchronize!  https://braid.news

Michael Toomim

**P.S.  I am excited for everyone in Singapore!  I had to cancel my trip at the last minute with the flu.  But remote participation works great!

**P.P.S.  I've been very impressed by this community, and by how productive the HTTP working group is.  This is cool, especially considering how important HTTP is.