Re: [dispatch] A State Synchronization Working Group

Michael Toomim <toomim@gmail.com> Thu, 26 October 2023 22:40 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 1BB6EC1CB07F for <dispatch@ietfa.amsl.com>; Thu, 26 Oct 2023 15:40:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.196
X-Spam-Level:
X-Spam-Status: No, score=-7.196 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.091, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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=gmail.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 1zFfHyGqFuUe for <dispatch@ietfa.amsl.com>; Thu, 26 Oct 2023 15:40:28 -0700 (PDT)
Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B245C17C511 for <dispatch@ietf.org>; Thu, 26 Oct 2023 15:40:28 -0700 (PDT)
Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1cac925732fso12047515ad.1 for <dispatch@ietf.org>; Thu, 26 Oct 2023 15:40:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698360027; x=1698964827; darn=ietf.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=vg5vL/5Td+j/3Ld4tKcqqpabHu2FlWtiyZwyYaWcC94=; b=IPxYFU2dY0ZAp0DT+unBSgdTzRdSU9gADrdalwAcrVa9mj3uTPXkL+b32pyKLGg19J hcmsvshm6RaZiNPbyeOvmkHNKAIjxpmabmzkIc3mwNU5+rdzkEEFXA5BorlP3sla6aQh cHtN10N10TTGAk53enrYzKHQ7zt2UrnzDJTlVWEIxmHuRxvxt8BkiGW0qUbX6QLBXHI7 YQIfNmuUfL9EhMxBzm0BkoBZSCimSkNwDsYvllwGDWWiI7e0Tm5SsKfUKwijadlhUnYL NmiBiaRNOwlzC1JM4/GzUebqbW/oIivPTBVb45IZNUpuzfZbnNf6xubZQ2dRhfkP81fw 9sxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698360027; x=1698964827; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=vg5vL/5Td+j/3Ld4tKcqqpabHu2FlWtiyZwyYaWcC94=; b=HZLusf9VvIGc04MDY4ocOJgIcoNoxGJV+5Y1keQ3XVP3STtiIvjy5tRItLUI4KG/em ujl/QFdJieY/KzUMFBul20c1Q9xfVRwrgWjwkn00QFd/I4XZc5gNlgZsZn6vjqOYOYs8 L8pNDfXq6Mm03bBsAiO/AJhtrTtTRsKhEsaATXDlaeB7/oEakjNAEpDcJBudwoTxJZXZ sOipTqy55wetMbqOAMb4+24gxdN3RDG3/k07h/asX7sf9CVMofMRfEPZziKSn0PvClSS GjGGuwUzCFR3mSuJFyPQak0S/ZYxoQCRKJHXB36opwGAapglmO5pBnRC01lKcF8wc0OE 1Caw==
X-Gm-Message-State: AOJu0YwPJ2tR41lUgGERJW+AP5dppyRQ1KLKSvl/lqdU8QgLdpoh7CQp 3Dl+iuu3wVzOxsWQLPu1y7uU7ydF/Gs=
X-Google-Smtp-Source: AGHT+IERRZ3noLC1SsbR7u+IDeWZIplJRL8UkP2n0FHDptgMF6gei6MPkydwEUaZdjC9FIRhqKLE7g==
X-Received: by 2002:a17:902:d4c6:b0:1ca:6abe:cb37 with SMTP id o6-20020a170902d4c600b001ca6abecb37mr971020plg.9.1698360027279; Thu, 26 Oct 2023 15:40:27 -0700 (PDT)
Received: from [192.168.1.26] (cruzio-216-173-137-135.static.cruzio.net. [216.173.137.135]) by smtp.gmail.com with ESMTPSA id bd11-20020a170902830b00b001c7283d3089sm181336plb.273.2023.10.26.15.40.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Oct 2023 15:40:26 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------Qr3YV26V4mSyqgBy3QYCQm4U"
Message-ID: <bf9a894c-8540-6679-e3c4-85902581f773@gmail.com>
Date: Thu, 26 Oct 2023 15:40:25 -0700
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.14.0
Content-Language: en-US
To: "touch@strayalpha.com" <touch@strayalpha.com>
Cc: "dispatch@ietf.org" <dispatch@ietf.org>
References: <a301786e-c59d-f395-f752-bd2c94521e67@gmail.com> <CC0D684C-D740-4005-A004-95F9A68BA663@strayalpha.com>
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <CC0D684C-D740-4005-A004-95F9A68BA663@strayalpha.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/iAKDfIxAcR9nG2a9W1_tIew_Ziw>
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 22:40:32 -0000

Joe Touch wrote:
> Hi, Michael,
>
> How is this not exactly what all stateful protocols all already do?

Sure! Let's distinguish a *stateful* protocol from a *state 
synchronization* protocol, because these are totally different things.

First, not all stateful protocols do synchronization. Consider the 
stateful protocol FTP:

    $ ftp exmaple.com
    ...
    cwd docs
    mkd ietf-2023
    cwd ietf-2023

These commands change the server state, but don't affect the client 
state. The client doesn't know what the current working directory is, 
nor what's on the server's filesystem.

A state /synchronization/ protocol ensures (or tries to ensure) that 
both peers end up with the same state. For instance, a FTP client can 
download a file from a server:

    get braid-http.txt

...but if the file changes on the server, FTP has no mechanism to 
automatically update the client. And if the file changes on the client, 
FTP does not automatically update the server. And if both client and 
server change the file simultaneously, FTP has no way to automatically 
merge those edits. And if the connection dies, FTP does not 
automatically re-establish the connection and the current working 
directory—the user has to do all of this manually. Thus, FTP is a /state 
transfer/ protocol, not a /state synchronization/ protocol, and it 
happens to do this /statefully/./
/

As a rule of thumb, state synchronization protocols tend to have one or 
more of these keywords in them:

    - Publish / Subscribe
    - Notify / Notification
    - Event, Event Types, State, Updates
    - Diffs, Patches, Merges
    - Synchronization

See https://www.rfc-editor.org/rfc/rfc4533.html for an example that is 
currently open in a browser tab on my computer.

Michael