Skip to content

Tradeoffs of different failure modes for extension points #9

@tfpauly

Description

@tfpauly

There's an interesting point made here (https://tools.ietf.org/html/draft-iab-use-it-or-lose-it-00#section-2.2):

When SNMP versions 2, 2c and 3 came along, older agents did exactly
what the protocol specifies. Deployment of new versions was likely
successful because the handling of newer versions was both clear and
simple.

This highlights how new versions deployed well when they were completely incompatible with older versions.

There are different ways to use extensibility:

  1. Switch between incompatible versions (fail hard when not supported)
  2. Required extensions within a protocol version (fail hard when not supported)
  3. Optional extensions within a protocol version (no failure when not supported, but maybe bugs)

Failing hard is beneficial property to avoid bugs or ossification around handling optional extensions. To some degree, it may make sense to have the recommendations for extension use be based on how a given extension or version is used. Is this something we could make a recommendation around?

Metadata

Metadata

Assignees

No one assigned

    Labels

    evolvabilityProtocol extensibility and greasing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions