[dispatch] Fresh Braid Release!

Michael Toomim <toomim@gmail.com> Wed, 20 November 2019 03:25 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 0C552120271 for <dispatch@ietfa.amsl.com>; Tue, 19 Nov 2019 19:25:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HI0VzbdxwnPM for <dispatch@ietfa.amsl.com>; Tue, 19 Nov 2019 19:25:50 -0800 (PST)
Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 81E391202A0 for <dispatch@ietf.org>; Tue, 19 Nov 2019 19:25:50 -0800 (PST)
Received: by mail-pl1-x631.google.com with SMTP id d29so13117095plj.8 for <dispatch@ietf.org>; Tue, 19 Nov 2019 19:25:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:subject:message-id:date:to :mime-version; bh=n0BdvvVhnxjgZkXK0aQC32F3fK2+MCU0fVQApSmRpdw=; b=kyVtNEiZUa1BNv1C/Qrf6sMyeiKuo0n+UWCmsF/r23lwh4KTCX2MwxOEtClZ4KqnH5 ivFNEHz6nf+Zd4ztE+5ayy8n4kVDQFTKAbKWeX9Ob6hnNNlEiXmSXvj4LhWdzH0YqKEe CrczEyN8ArMBpWn4xTHvEXeae/ofzVI0JJ4+Ih/ZB7NWQkqWahXq8BYzX5jYuVIyyNdw 9p2SNKOumnE68zEac7Q2OAgcW56i5wZVfdfIlH1GkYrRUC8yiHLPUsI43myCgODsem/T hHJLIKxBWnih5i7Lz2OZugRcFi/WQUiI1OMRaLdL2yQFly2OvpGTheSC77ZCKfNmLlVl Rcuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:subject :message-id:date:to:mime-version; bh=n0BdvvVhnxjgZkXK0aQC32F3fK2+MCU0fVQApSmRpdw=; b=etKuiBOUtp5g98UlqATrFNP7VjEHCersv3Dr/37oYDBtGNzRJmz2lGqUEcEmRxZtvo YMfdDhww5bn0OMaAdxokNykQefo2HdIHsn1RFOtfW7FuybuM5/KaMlYp6E7rT09H4l6Q IWDd7kyoancShbQ9omRn3WvWmzJKvWJOvnXD1ppmF1h7d0Wl9JoJmT14F2yNfrf/HlSy bs36e6wh9HiI0A1lYS3Jkz1DWC69jV2n92oxdQ9wYUENdZ7KhRIJxibf/t1zXGxKyegp /YmMyJiyAL92ysaTorOB+s+XoUtkFkQJ+S22wI8K2ic36yWsZNF8yk3uFnsYxzbg0HjT VX/g==
X-Gm-Message-State: APjAAAUn8U2RzhS/QpH3Ep3YbRVkfi5tg0sQvqm3mXTvwVD7fzXwcpau IK8Jt/pDmkPZQ5GD4qg9OxdhGt13
X-Google-Smtp-Source: APXvYqy1TO5GB5OpnlGgdq4AsMROePm017kTMzOffV4YV6Au3C2rVQP5jIiQ9Ip5WVgar/Wq/QdCmw==
X-Received: by 2002:a17:902:7893:: with SMTP id q19mr677689pll.130.1574220349998; Tue, 19 Nov 2019 19:25:49 -0800 (PST)
Received: from [172.16.103.176] (c-71-202-89-74.hsd1.ca.comcast.net. [71.202.89.74]) by smtp.gmail.com with ESMTPSA id a66sm28052540pfb.166.2019.11.19.19.25.49 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Nov 2019 19:25:49 -0800 (PST)
From: Michael Toomim <toomim@gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Message-Id: <ECDE30DA-D7C1-46D9-BD33-0A25A597CAE2@gmail.com>
Date: Tue, 19 Nov 2019 19:25:48 -0800
To: HTTP Working Group <ietf-http-wg@w3.org>, dispatch@ietf.org, Braid-HTTP <braid-http@googlegroups.com>
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/y-SCldKp0D3Rt_uPdYU4QnwpI3c>
Subject: [dispatch] Fresh Braid Release!
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 20 Nov 2019 03:25:53 -0000

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.