Re: [core] I-D Action: draft-ietf-core-coap-pubsub-13.txt

Christian Amsüss <christian@amsuess.com> Fri, 27 October 2023 14:29 UTC

Return-Path: <christian@amsuess.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4401BC14EB17; Fri, 27 Oct 2023 07:29:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.607
X-Spam-Level:
X-Spam-Status: No, score=-2.607 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, 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
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 Obzt-ctYpBDi; Fri, 27 Oct 2023 07:29:51 -0700 (PDT)
Received: from smtp.akis.at (smtp.akis.at [IPv6:2a02:b18:500:a515::f455]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 0944EC14CE3B; Fri, 27 Oct 2023 07:29:44 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com ([IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd]) by smtp.akis.at (8.17.1/8.17.1) with ESMTPS id 39RETf2g086143 (version=TLSv1.2 cipher=ECDHE-ECDSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Oct 2023 16:29:41 +0200 (CEST) (envelope-from christian@amsuess.com)
X-Authentication-Warning: smtp.akis.at: Host [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd] claimed to be poseidon-mailhub.amsuess.com
Received: from poseidon-mailbox.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bf]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id EC2DB2B4E4; Fri, 27 Oct 2023 16:29:40 +0200 (CEST)
Received: from hephaistos.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:92ff:f2c8:aad4:ad6b]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id B60AB2B280; Fri, 27 Oct 2023 16:29:40 +0200 (CEST)
Received: (nullmailer pid 3807 invoked by uid 1000); Fri, 27 Oct 2023 14:29:40 -0000
Date: Fri, 27 Oct 2023 16:29:40 +0200
From: Christian Amsüss <christian@amsuess.com>
To: draft-ietf-core-coap-pubsub@ietf.org
Cc: core@ietf.org
Message-ID: <ZTvJVL3a9I0fEeIL@hephaistos.amsuess.com>
References: <169780660206.27885.12493906232017581815@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="mtUWBZ1r+d5rePHT"
Content-Disposition: inline
In-Reply-To: <169780660206.27885.12493906232017581815@ietfa.amsl.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/3acyttrhBnAyVOWwBB2-dpG39EA>
Subject: Re: [core] I-D Action: draft-ietf-core-coap-pubsub-13.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 27 Oct 2023 14:29:54 -0000

Hello pubsub authors, group,

(this starts as a public resubmit of an earlier direct message to Jaime,
and also discussed during [1], and goes into new examples),

The current pubsub draft appears to do the things well that it is
setting out to do -- and we should finish it already.

At the same time, I think it conflates things in a way I've generally
been uneasy about for some time, and that I'm more and more finding the
words to phrase: At the same time, pubsub does

* metadata about resources ("topic name", expiration management that
  exceeds max-age)
* delegation of authority (in a sense a pubsub topic is just a reverse
  proxy for a resource the publisher has, even though thanks to reversal
  of control flow that is rarely accessible directly),
* population of proxy caches in role reversal mode,
* and by combination of the latter two, sleepy devices (which we had a
  document on, and apparently that was such a patent mine field that
  everyone left it).

I don't think that those should lead to large alteration of the
document, but maybe the awareness of those components can help us toward
a structure that has more easily reusable parts.

To give examples of easy to address parts, I'd appreciate if
"topic-name" and "topic type" were phrased in a way that are compatible
with discovery: Is topic-name different from the title link-format
attribute of the data resource? Is topic-type different from the
resource type of the data resource? Is observer-check a variant that was
missed in conditional-attributes (c.pminconf)? These might be achievable
by some subtle renaming of parameters that are called TBDn so far
anyway.

Examples of the authority / proxying part are: Can a pubsub broker also
be used as a forward proxy without altering the authority component, so
that if a publisher `coap://device1.example.com` creates a topic and
announces that it would publish its own `/sensor1` resource in the
topic, the pubsub broker could be contacted by a subscriber to please
get `coap://device1.example.com/sensor1`, and the broker would send the
most recent published data? Can a publisher (under the same condition of
having the own-`/sensor1` metadata) tell the broker that it prefers not
to bother the broker with updates on each and every resource, but the
broker may start observing the relevant resources as soon as subscribers
are around? Sure: That's not the classical pubsub model. But to the
consumers it looks the same modulo some initial latency, and I think
that's what should matter in our specifications: Interface, not
implementation. Discussing the whole area is probably out of scope for
the document, but maybe we could point out something like:

> 1.4 Extensions from a collection of interfaces
>
> A pubsub broker fulfills multiple roles at once, providing interfaces
> for configuration, for publishers and subscribers. In addition to
> those interfaces, alternative interfaces may be provided. For example,
> publishers might configure a broker to observe their resources into a
> topic using the methods of {{?I-D.ietf-core-dynlink}}. Clients could
> be allowed to use the broker as a proxy to access resources on their
> original URIs (provided that metadata is deposited in the broker).
>
> Such extensions are out of scope of this document, as is discussing
> whether the resulting system would still be designated as a pubsub
> broker.

Best regards
Christian

[1]: https://datatracker.ietf.org/meeting/interim-2023-core-15/session/core

-- 
To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom