[Jmap] Braid: Synchronization for HTTP

Michael Toomim <toomim@gmail.com> Fri, 19 July 2019 21:24 UTC

Return-Path: <toomim@gmail.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D0F612086D for <jmap@ietfa.amsl.com>; Fri, 19 Jul 2019 14:24:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.998
X-Spam-Level:
X-Spam-Status: No, score=-0.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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no 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 AHX154r0vUlb for <jmap@ietfa.amsl.com>; Fri, 19 Jul 2019 14:24:08 -0700 (PDT)
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) (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 E645012018A for <jmap@ietf.org>; Fri, 19 Jul 2019 14:24:07 -0700 (PDT)
Received: by mail-pf1-x42f.google.com with SMTP id r7so14700467pfl.3 for <jmap@ietf.org>; Fri, 19 Jul 2019 14:24:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:message-id:date:to:mime-version; bh=HflNmaCN3QQ0Ib0VxUA+XAzkSgztwNbrhWIClJ+S+aw=; b=RHVX4xDRhvMRggKCzsgrdoUbaeuWaQIB+CemBVzwT6+V5BjIlW4THOWGEDo8+zQem8 HaoMWtHuFW3bUpLl3LyFD96JGtERaZNILyL4lc01xyw65fUDmk43D7gVVGGnj/+zF5vN B44JideFch5kYqe483XgZkdfil1ZoNLo6tSw2TKPqsVMLQonbejfJ0BRPTOUT4ZONO1l wmUcWe2rXxuqiMO7V73nIUymhUWX8Y/yn/gcjmp+GSBYCIg5Y7u7fn7hW6OK8eo9RlOq C99XVKc/1Bce2Db08U+b7z2OjSfNgAytdbQtRsIBgC9Xb7upi68uov/bAkIHVbWzM5T9 7PGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:message-id:date:to:mime-version; bh=HflNmaCN3QQ0Ib0VxUA+XAzkSgztwNbrhWIClJ+S+aw=; b=OndDDkI5i/46q32ZjLD/PnHdChUki1ZicxqeegSLz4pP0amfcBLwwYiyjvlsHN3Wwo iCjVGRuXYhiujhcd64sd1IzbFDz375vyklvDus7Kx5t63TVSNF0JKTJXY9iO8wl9pLca 8Pktvbh3jpMmkCQa8bQpLOjGZL0gA2q2qYYgghFGx7wzqnwARJMKeIlC4XLsr60wB59J 2aF7SYGgB+X6gWyn74BIgnupg0JOUMQYGz6xwyvccfi1KLKbOV003X7Y2yFqmfiyY2aZ GTuvD36F1jLrYvEpdnWIyHzAvkLyPfO3/mkjQW1l0cOvRW4XvoKQsPvbUsUXwZm7YSYz CWyg==
X-Gm-Message-State: APjAAAVkdvGBn/TxCyw+KU+hr6XR2ELEHTlUT6l1rUfRNLq81tTkHL9P 9tEX1QwD7BT36ynt4AXiHMCEh2VmPg0=
X-Google-Smtp-Source: APXvYqxJoJoSb2Gr2RJYMk8lEPJ9FDxS349mOJ1mSlAZXLGhYvq0G+HzyLuvB67AMSvZFoKZhQV7kQ==
X-Received: by 2002:a17:90a:26ea:: with SMTP id m97mr60229566pje.59.1563571447181; Fri, 19 Jul 2019 14:24:07 -0700 (PDT)
Received: from [10.8.44.98] ([199.73.114.148]) by smtp.gmail.com with ESMTPSA id l31sm56859341pgm.63.2019.07.19.14.24.06 for <jmap@ietf.org> (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 19 Jul 2019 14:24:06 -0700 (PDT)
From: Michael Toomim <toomim@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_46A2AA98-FE65-4CE1-A266-4AA906FE3A99"
Message-Id: <9D024982-AC44-45D7-ABCF-0A8936B06E30@gmail.com>
Date: Fri, 19 Jul 2019 14:23:59 -0700
To: jmap@ietf.org
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/jmap/CvApP6Ac1uX2goYScxPd73R8qnc>
Subject: [Jmap] Braid: Synchronization for HTTP
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 21:24:10 -0000

Hi all,

I am involved with Braid—an extension to HTTP that adds state synchronization—which I believe addresses much of JMAP's synchronization problem, but at a lower level of the protocol stack.

Braid's development could certainly benefit from the experience and expertise of the JMAP working group. Could someone from JMAP review it? In a future world, I could imagine JMAP using Braid.

The first draft of the Braid spec was just published here:

https://tools.ietf.org/html/draft-toomim-braid-00 <https://tools.ietf.org/html/draft-toomim-braid-00>

Abstract:
Braid is an extension to HTTP, which gives it the ability to synchronize changing state, rather than just transfer it. Braid integrates the power of Operational Transform and CRDTs with the web, improving network performance and robustness, and enabling peer-to-peer web applications.

At the same time, Braid creates an open standard for the dynamic internal state of websites.  Programmers can access state uniformly,  whether local or on another website.  This creates a separation of UI from State, and allows any user to edit or choose their own UI for any website's state.

Additional resources are at https://braid.news <https://braid.news/>.

Thank you! I will also be in Montreal and would be very happy to discuss this in person.

Michael

> Begin forwarded message:
> 
> From: internet-drafts@ietf.org <mailto:internet-drafts@ietf.org>
> Subject: New Version Notification for draft-toomim-braid-00.txt
> Date: July 8, 2019 at 4:55:28 PM PDT
> To: "Michael Toomim" <toomim@gmail.com <mailto:toomim@gmail.com>>, "Rafie Walker" <slickytail.mc@gmail.com <mailto:slickytail.mc@gmail.com>>
> 
> 
> A new version of I-D, draft-toomim-braid-00.txt
> has been successfully submitted by Michael Toomim and posted to the
> IETF repository.
> 
> Name:		draft-toomim-braid
> Revision:	00
> Title:		The Braid Protocol: Synchronization for HTTP
> Document date:	2019-07-08
> Group:		Individual Submission
> Pages:		15
> URL:            https://www.ietf.org/internet-drafts/draft-toomim-braid-00.txt <https://www.ietf.org/internet-drafts/draft-toomim-braid-00.txt>
> Status:         https://datatracker.ietf.org/doc/draft-toomim-braid/ <https://datatracker.ietf.org/doc/draft-toomim-braid/>
> Htmlized:       https://tools.ietf.org/html/draft-toomim-braid-00 <https://tools.ietf.org/html/draft-toomim-braid-00>
> Htmlized:       https://datatracker.ietf.org/doc/html/draft-toomim-braid <https://datatracker.ietf.org/doc/html/draft-toomim-braid>
> 
> 
> Abstract:
>  Braid is a proposal for an extension to HTTP that transforms it from
>  a state *transfer* protocol into a state *synchronization* protocol.
>  Braid puts the power of Operational Transform and CRDTs onto the web,
>  improving network performance and robustness, and enabling
>  peer-to-peer web applications.
> 
>  At the same time, Braid creates an open standard for the dynamic
>  internal state of websites.  Programmers can access state uniformly,
>  whether local or on another website.  This creates a separation of UI
>  from State, and allows any user to edit or choose their own UI for any
>  website's state.
> 
>  We have a working prototype of the Braid, and have deployed it with
>  production websites.  This memo describes the protocol, how it
>  differs from prior versions of HTTP, and a plan to deploy it in a
>  backwards-compatible way, where web developers can opt into the new
>  synchronization features without breaking the rest of the web.
> 
> 
> 
> 
> 
> 
> Please note that it may take a couple of minutes from the time of submission
> until the htmlized version and diff are available at tools.ietf.org <http://tools.ietf.org/>.
> 
> The IETF Secretariat