Hi.

Honed the analysis a bit more.

Jasdip

---

Approach A: Tight coupling between extension identifier and rdapConformance

Extension identifier = <prefix>[<version>]                   [ ] means optional
  Registered in the IANA RDAP Extensions registry
  A new spec provided for each new version of the extension
rdapConformance = <prefix>[<version>]

Extension identifier used in new data members, and in new path segments 
(including any new query or matrix parameters)

Approach B: Lack of tight coupling between extension identifier and 
rdapConformance

Extension identifier = <prefix>
  Registered in the IANA RDAP Extensions registry
rdapConformance = <prefix>[<version>]                     [ ] means optional
  Registered in the IANA RDAP Extensions registry (or perhaps another registry 
for rdapConformance)
  A new spec provided for each new version of rdapConformance

Extension identifier used in new data members, and in new path segments 
(including any new query or matrix parameters)

Comparing the two approaches:

Aspect

Approach A - tight coupling

Approach B - lack of tight coupling

Providing a new spec to IANA for a new version

Registry stays as-is

Registry needs to evolve for:

  *   Versioned rdapConformance
  *   Tying spec to versioned rdapConformance

Risk of breaking changes for RDAP clients

Yes, if the server now only supports the new version and a client hasn’t 
evolved yet

Data member names and path segments change with each new version but not an 
issue if clients have re-programmed a priori

Clients would knowingly call the versioned path segments — no guesswork

If a path segment is not affected by a new version and only a newly versioned 
data sub-object is added in the response, that could break clients

Yes, when a field is removed, or a required field is added, for a new version

When a call is made using a non-versioned path segment, the newly versioned 
rdapConformance would be checked after the fact and that could break the client 
for above field additions and subtractions if not re-programmed a priori

Clients would call non-versioned path segments but could be broken by the new 
responses

Cost of reprogramming clients for the next version of an extension

There is cost but not as high as it seems — replacing version in multiple 
places and accounting for field and query parameter additions and subtractions

Longer grace period for clients to reprogram if the server supports multiple 
versions during transition

There is cost — accounting for a field removal or a required field addition

Reprogramming could become exigent for clients if the server switches to the 
new version without supporting the previous version

Cost of reprogramming servers for the next version of an extension

There is a higher cost — if multiple versions are simultaneously supported 
during a transition period, replicating code from the previous version and 
replacing version in multiple places and accounting for field and query 
parameter additions and subtractions

Eventually retiring code for the previous version

There is a lower cost — if only the latest version is supported, accounting for 
a field removal or a required field addition vis-a-vis the previous version

Server-side signaling of the next version of an extension

Add the new version of the rdapConformance in the help response and related 
responses

Make URLs for new versions of path segments available

Add the new version of the rdapConformance in the help response and related 
responses

No change in URLs for the new version of the rdapConformance

Potential confusion for clients

Zero since the new version is explicitly marked in data members and URLs

Not zero since the new version is not marked in data members and URLs, and 
would only be discovered through the rdapConformance value in a response

Aesthetics (does not matter to a machine but could for human friendliness)

Less

More



From: regext <regext-boun...@ietf.org> on behalf of Jasdip Singh 
<jasd...@arin.net>
Date: Thursday, May 19, 2022 at 2:15 PM
To: "regext@ietf.org" <regext@ietf.org>
Subject: [regext] Analysis of tight coupling between extension identifier and 
rdapConformance, versus lack of

Hi.

Not sure if it is totally correct but wanted to input a strawman analysis of 
the two approaches -- tight coupling between extension identifier and 
rdapConformance, versus lack of -- to our discussion. Hope this is useful.

Thanks,
Jasdip

---

Approach A: Tight coupling between extension identifier and rdapConformance

Extension identifier = <prefix>[<version>]                   [ ] means optional
  Registered in the IANA RDAP Extensions registry
  A new spec provided for each new version of the extension
rdapConformance = <prefix>[<version>]

Extension identifier used in new data members, and in new path segments 
(including any new query or matrix parameters)

Approach B: Lack of tight coupling between extension identifier and 
rdapConformance

Extension identifier = <prefix>
  Registered in the IANA RDAP Extensions registry
rdapConformance = <prefix>[<version>]                     [ ] means optional
  Registered in the IANA RDAP Extensions registry (or perhaps another registry 
for rdapConformance)
  A new spec provided for each new version of rdapConformance

Extension identifier used in new data members, and in new path segments 
(including any new query or matrix parameters)

Comparing the two approaches:

Aspect

Approach A - tight coupling

Approach B - lack of tight coupling

Providing a new spec to IANA for a new version

Registry stays as-is

Registry needs to evolve for:

  *   Versioned rdapConformance
  *   Tying spec to versioned rdapConformance

Risk of breaking changes for RDAP clients

Yes, if the server now only supports the new version and a client hasn’t evolved

Data member names and path segments change with each new version but not an 
issue if clients have re-programmed a priori

Clients would knowingly call the versioned path segments — no guesswork

Even if a path segment is not affected by a new version but only a newly 
versioned data sub-object is added in the response, that could break clients

Yes, when a field is removed, or a required field is added, in a new version

When a call is made using a non-versioned path segment, the newly versioned 
rdapConformance would be checked after the fact and could break the client for 
above field additions and subtractions if not re-programmed a priori

Clients would call non-versioned path segments but could be broken by the new 
responses

Cost of reprogramming clients for the next version of an extension

There is cost but not as high as it seems — replacing version in multiple 
places and accounting for field and query parameter additions and subtractions

There is cost but could be higher than it seems - client finds after the fact 
about a field removal or a required field addition

Cost of reprogramming servers for the next version of an extension

There is cost but not as high as it seems — replacing version in multiple 
places and accounting for field and query parameter additions and subtractions

There is cost for a field removal or a required field addition

Server-side signaling of the next version of an extension

Add the new version of the rdapConformance in the help response and related 
responses

Make URIs for new versions of path segments available

Add the new version of the rdapConformance in the help response and related 
responses

No change in URIs for the new version of the rdapConformance

Potential confusion for clients

Zero since the new version is explicitly marked in data members and URIs

Not zero since the new version is not marked in data members and URIs

Aesthetics (should not matter to a machine but could to a human)

Less

More


_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to