Re: [dispatch] Proposal for Per Resource Events Protocol
Michael Toomim <toomim@gmail.com> Fri, 18 August 2023 02:32 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 023D2C151522 for <dispatch@ietfa.amsl.com>; Thu, 17 Aug 2023 19:32:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.195
X-Spam-Level:
X-Spam-Status: No, score=-7.195 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_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable 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 ywV2I0mpbc0l for <dispatch@ietfa.amsl.com>; Thu, 17 Aug 2023 19:32:47 -0700 (PDT)
Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) (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 A9A41C151548 for <dispatch@ietf.org>; Thu, 17 Aug 2023 19:32:47 -0700 (PDT)
Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-689fb672dc8so211989b3a.0 for <dispatch@ietf.org>; Thu, 17 Aug 2023 19:32:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692325967; x=1692930767; 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=s6Qhuzm3OqTT0e77nbJ9XhbREH9hV1XQG08IEOVA7Ag=; b=Rh7XM+2TBIpCFap/U9ia30d9frrKDuhWCfLQZKATJ+cypwURCsQwpuOLb/miJvdKsB N+mA+2Jd34OVPrPrkR6GXwDu2oeiU1CNLCSBTnCxVtkEjBYeisHKXtjFOW6bX98MPHJl PvI8Cqp6A+7lKVktLYx2bgNawC7KSJ4/u5pQe9IO8+n0E1/o9FVy17tK+DmB4l4Jxza3 Wkof0WkTRpbUsDUrZ9ML9kcmqkiKN2z/G3FhRRiq0KsL7/r3oh872X7QXrgX8E5ED42p 9lXU7USt4TWVM5lMBNq3bK1cr/HNrIxhbXyUb07oPmnZLOz90iUZDjBQCY9Sh5dLlOmw uolQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692325967; x=1692930767; 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=s6Qhuzm3OqTT0e77nbJ9XhbREH9hV1XQG08IEOVA7Ag=; b=Ek+x25mTebvx+O+mUPXkUH5gsbhDq8TmZmlG7nO5CLatZXmuWXo2UjJovacvl+UBmX tK9HpVSP6L2lU8HyvXl23TUz0WSYLUJoGEqZ7du6nJMseIQx0Zr345rM3TTm1HQcsX41 glIW562jqzhzGN9DS3fkl1/PkDmAFjo5E8D/uxBO+RAa6zK9gAxXvfGIkPRluFi2CUbZ Mtvr3LJUs5pr6khKRWqvG7wr+nqejhtyWXU5iXz1Y/Gu6Tm9mmRNRlG7O5DJInBXZdjj ZRFGwWZwdbPYFwRZqkedqMdThSBRWSW6TiNEEqI9rxWmcc/HrN5UQWUnAgkE/HF6TMgn w9Xg==
X-Gm-Message-State: AOJu0YzGg6YcRRME/CNpUS496O+w8L7VJIugAoIpD8KuK+ffzcM/FuMl 3EsfjUj47gDswrkOo2fSd4Y=
X-Google-Smtp-Source: AGHT+IFh/eRhPjoXDV64syPtESUjyb/1guj36GVWxJdqaCZbo2DpklbvQZlf1x4XYeEn2LiAu9N0uA==
X-Received: by 2002:a05:6a00:139a:b0:682:2fea:39f0 with SMTP id t26-20020a056a00139a00b006822fea39f0mr1722085pfg.5.1692325966706; Thu, 17 Aug 2023 19:32:46 -0700 (PDT)
Received: from ?IPV6:2806:290:8814:ff85:ec10:642c:e9f8:825? ([2806:290:8814:ff85:ec10:642c:e9f8:825]) by smtp.gmail.com with ESMTPSA id a20-20020aa78654000000b00689f8dc26c2sm425914pfo.133.2023.08.17.19.32.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Aug 2023 19:32:45 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------XXGLI70jw9rBbzR9fUdPZMdJ"
Message-ID: <c075c776-f3fd-0f6e-915a-fe8f24de3f4e@gmail.com>
Date: Thu, 17 Aug 2023 19:32:44 -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: "Dale R. Worley" <worley@ariadne.com>
Cc: dispatch@ietf.org, cxres=40protonmail.com@dmarc.ietf.org, tbray@textuality.com
References: <87y1i9wsdv.fsf@hobgoblin.ariadne.com>
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <87y1i9wsdv.fsf@hobgoblin.ariadne.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/4pDNoBCtGtYQyEBFq8JLSLcL3xM>
Subject: Re: [dispatch] Proposal for Per Resource Events Protocol
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: Fri, 18 Aug 2023 02:32:52 -0000
Excellent, thank you Dale for these insights! Dale: > I don't remember clearly at this point. Back when I was working on > Microsoft's "Universal Plug and Play", it did come up that there were > things people wanted notifications about that were conceptually events, > not changes in any straightforward "state". The specific semantics are: > > - You are communicating "state" if when there are two updates "state = > A" followed by "state = B", it is OK, if the first one is lost as long > as the second one is delivered. (Obviously, this doesn't work if the > messages are deltas, but it *does* work if the second message is a > "full" update.) > > - You are communicating "events" if it is important that *each* > notification be delivered. > > Of course, you can hack it by saying the state is the cumulative list of > all events that have happened in the past, but that's not good, > especially since the "state" grows without bound. Ah, yes, now I know precisely what you are referring to! These "events" are semantic labels for transitioning a state machine through various states. This is a very common way to implement data synchronization across a set of modules, but it has drawbacks: * The semantics of the events have to be designed, defined, and implemented for each data model that needs synchronization, and each module needs to implement them identically. This makes it difficult to change the data model, or the vocabulary of change. * As you point out, the log of events grows without bound, and if you want to compute the current state, you may potentially need the entire history. Both PREP and Braid make it easy to synchronize with state snapshots and patches, instead, which makes for a more general & interoperable architecture. "Events" can still be included as labels for change, but can be optional. You can compute the current state from general infrastructure, that knows nothing about the particular data model being synchronized. > My most recent memory is from reviewing > draft-ietf-i2nsf-nsf-monitoring-data-model-12; it's entirely about > monitoring, and two sections are "System Events" and "NSF Events". Good find! This led me to discover NETCONF Event Notifications (rfc5277) which is super relevant as well. > My reflex was to say "Certainly, given the elaborateness of the XML > system, there must be a way to specify that!", though I know *nothing* > about XPath. But searching delivers: > https://stackoverflow.com/questions/3354987/what-is-the-xpath-to-select-a-range-of-nodes > "What is the XPath to select a range of nodes?" So XPath may already > have all the machinery one could want. Probably a negative is that the > straightforward specification would require the subscriber to implement > all of XPath. Wow, indeed. Having to specify: /bar[position() >= 100 and not(position() > 200)] Instead of: /bar[100:200] ...certainly leaves a lot to be desired. I think we can do better for an XML range unit. Michael
- [dispatch] Proposal for Per Resource Events Proto… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… worley
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- [dispatch] Fw: Re: Proposal for Per Resource Even… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… worley
- Re: [dispatch] Fw: Re: Proposal for Per Resource … Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… Tim Bray
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… worley
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… worley
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… worley
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… worley
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… Kévin Dunglas
- Re: [dispatch] Proposal for Per Resource Events P… Rahul Gupta
- Re: [dispatch] Proposal for Per Resource Events P… Michael Toomim
- Re: [dispatch] Proposal for Per Resource Events P… Kévin Dunglas