Re: [dispatch] A State Synchronization Working Group

"touch@strayalpha.com" <touch@strayalpha.com> Thu, 26 October 2023 01:15 UTC

Return-Path: <touch@strayalpha.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 54BE3C170601 for <dispatch@ietfa.amsl.com>; Wed, 25 Oct 2023 18:15:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.627
X-Spam-Level:
X-Spam-Status: No, score=-3.627 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_PSBL=2.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id saksDPqIN9EI for <dispatch@ietfa.amsl.com>; Wed, 25 Oct 2023 18:15:00 -0700 (PDT)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 21901C14CF0D for <dispatch@ietf.org>; Wed, 25 Oct 2023 18:14:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=To:References:Message-Id:Cc:Date:In-Reply-To: From:Subject:Mime-Version:Content-Type:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=QW5cDrTkzSoKpAibE86DwTQDDjcDf8wI+6jMxnIqgVk=; b=kRBVHOwyOlphI/+fOWR6qirnsE /tC3u9LsH1q6AKPnAhha4IJMPRd4/8xHRlc4unsebLYh3lnDzJDF4rgce7nPmLQlsuHpucpUYFztK IDVZQQkT1MnM4WSACXqov4OMc07JkQtw6XPWmz/hw4G+VgpGMYJbdrc+NB9ab+AFU8cKsgLQKIi4p nwS5SKk/nkXEUwIILIqohwzSa2XNOcyBYIQMsDtDYdkZEujAY82cJJyoUjmle5vJaHd2yurHN+f29 T2U7fDdXog3/uD9Qcm03r51JTz6lr2WYm5IME9EX92LzEKct703rf+7zUZDFCN7IS9pZOSAIUhsLs ss8dGPPg==;
Received: from [172.58.209.223] (port=11273 helo=smtpclient.apple) by server217.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.1) (envelope-from <touch@strayalpha.com>) id 1qvoxZ-002Od4-0y; Wed, 25 Oct 2023 21:14:58 -0400
Content-Type: multipart/alternative; boundary="Apple-Mail=_7AA56044-6537-4CF3-8E22-043910DC0BC4"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.100.2.1.4\))
From: "touch@strayalpha.com" <touch@strayalpha.com>
In-Reply-To: <a301786e-c59d-f395-f752-bd2c94521e67@gmail.com>
Date: Wed, 25 Oct 2023 18:14:41 -0700
Cc: "dispatch@ietf.org" <dispatch@ietf.org>
Message-Id: <CC0D684C-D740-4005-A004-95F9A68BA663@strayalpha.com>
References: <a301786e-c59d-f395-f752-bd2c94521e67@gmail.com>
To: Michael Toomim <toomim@gmail.com>
X-Mailer: Apple Mail (2.3774.100.2.1.4)
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/UMu49lik3khomm2HBVow5igWs8s>
Subject: Re: [dispatch] A State Synchronization Working Group
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.39
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: Thu, 26 Oct 2023 01:15:04 -0000

Hi, Michael,

How is this not exactly what all stateful protocols all already do?

Joe
—
Dr. Joe Touch, temporal epistemologist
www.strayalpha.com

> On Oct 25, 2023, at 3:04 PM, Michael Toomim <toomim@gmail.com> wrote:
> 
> I would like to dispatch the idea of forming a general State Synchronization Working Group, to coordinate duplicate efforts in defining various state synchronization protocols across existing IETF working groups.
> 
> Many networking protocols implement some form of state synchronization.  At the application layer, SCIM, SIP, COAP, ALTO, NETCONF, JMAP, CalDAV, and IPP all define state synchronization protocols over HTTP.  Many non-IETF protocols also implement sync-over-HTTP for specific uses, such as WebSub (to synchronize blogs), ActivityPub (to synchronize social feeds), and Matrix (to synchronize chat).  Outside of HTTP, we do state synchronization in DNS, IMAP, LDAP, NFS, RSYNC, and Git.  Dropping to the lower-level OSI layers, we have protocols to synchronize IP routing tables, network reachability, and header compression dictionaries like ROHC, OSPFv2, IS-IS, and BGP.  State synchronization also comes up in distributed systems and databases, with algorithms such as OT and CRDT, and each system defines its own distinct protocol.
> 
> We design these as separate protocols because the *general* version of the State Synchronization Problem has seemed too challenging to tackle. However, the last decade of research has brought breakthroughs in general state synchronization algorithms that allow (a) multiple editors, (b) editing arbitrary data types, (c) over a distributed network, (d) of arbitrary network topology, (e) experiencing arbitrary network partitions and delays, (f) with arbitrary merge resolution semantics—all with reasonable (and improving) performance.  These general algorithms bring up the possibility of designing general *protocols* for state sync.
> 
> If IETF working groups could rely on general standards for state sync, they could eliminate redundant consensus and specification work, as well as implementation work, because implementers could re-use common libraries and algorithms instead of writing their own algorithms.  Furthermore, general libraries could afford investment in advanced sync features such as peer-to-peer networking, offline modes, delta-compression, merge resolution, consistency guarantees, and fast-replay; which applications might not implement on their own, but now could benefit from for free.  This would improve networking robustness across the board.  Finally, interoperability would improve.  Network sysadmins, for example, could inspect and debug the state and history of their routers, emails, web applications, email, and file systems with intercompatible tools over a general protocol.
> 
> This new working group would integrate research with practice by working in symbiosis with existing IETF Working Groups.  Our new group would gather experts and researchers in state synchronization and interface with individual Working Groups.  It would learn the needs of individual working groups, and produce general knowledge, protocols, and libraries in return.
> 
> We have had initial success with this model in the informal Braid.org group, which was roughly modeled on an IETF Working Group, and has produced the Braid-HTTP internet draft that is coming up for discussion in HTTPbis.  The Braid group has met every two weeks for 2.5 years on zoom, with average attendance of 4 or 5 people, and has produced a number of research results in generalizing performant state synchronization:
> 
>   - Diamond-Types <https://github.com/josephg/diamond-types>: World's fastest P2P text editing CRDT
>   - List-CRDTs <https://github.com/josephg/reference-crdts>: First text editing CRDT with general pluggable merge semantics (video presentation <https://braid.org/video/https://invisiblecollege.s3-us-west-1.amazonaws.com/braid-meeting-10.mp4#305>)
>   - Antimatter: World's first history-pruning P2P text editing CRDT (draft <https://braid.org/antimatter>) (implementation <https://www.npmjs.com/package/@braid.org/antimatter>)
>   - Sync9 <https://braid.org/sync9>: First true replace text CRDT
>   - Portals <https://braid.org/meeting-62/portals>: Generalized patch semantics for moves, replaces, splices
>   - Time Machines <https://braid.org/drafts/time-machines>: Generalization of OT & CRDT theory
>   - Braid-HTTP <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http>: Synchronization for HTTP
> 
> We could imagine formalizing the Braid group into this State Synchronization group. It would look more broadly at synchronization than any individual application, and would produce specs that could be offered to other groups for standardization, similar to how the QUIC group seeded HTTP/3.
> 
> I am very curious what the IETF thinks about this idea for a working group, and would be very grateful to hear thoughts and opinions from everyone.  Thank you very much!
> 
> Michael
> 
> [1] Relevant Braid-HTTP draft: https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-braid-http
> 
> _______________________________________________
> dispatch mailing list
> dispatch@ietf.org
> https://www.ietf.org/mailman/listinfo/dispatch