Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider whether new transport types can be supported without a version bump #66

Open
andrewbonney opened this issue Feb 28, 2019 · 2 comments

Comments

@andrewbonney
Copy link
Contributor

As of v1.1-dev, new transport types have been added (websocket/mqtt), but a version bump is required in order to add any further new ones. This is the safest route, but it may be useful to be able to avoid version bumps for any future new transport types. There are of course a number of trade-offs, including:

  • If we supported new transports without version changes, the transport constraints and other schemas would need to be documented elsewhere to avoid the spec itself changing. This may make testing harder, and it may be harder to keep them stable / avoid accidental breaking changes.
  • With transport schemas held elsewhere, they would likely need to be versioned independently of the core spec. This helps with flexibility, but increases complexity for servers, clients and end users. Clients in particular may encounter several matching IS-05 versions but be unable to control all of them due to differing transport parameter schema versions.

This topic can be discussed at a later date if it is deemed important.

@andrewbonney andrewbonney added this to the v1.1 milestone Jun 10, 2019
@andrewbonney andrewbonney modified the milestones: v1.1, v1.x Jun 12, 2019
@garethsb
Copy link
Contributor

This has been discussed again in the Incubator, several activity groups and the @AMWA-TV/nmos-architecture-review team recently, due to renewed interest in supporting NDI, MPEG TS, SRT, etc.

The /transporttype response schema has a fixed list of supported types.

The sender "transport_params" schema and receiver "transport_params" schema are also restricted.

Similarly the constraints schema.

These schemas form a normative part of the specification. It would be quite invasive to loosen the specification schemas and pull the specific per-transport schemas out into an external register. ARG have tentatively concluded it should not be done without a minor version up.

While the exact mechanisms are still to be finalized, activity groups that are focused on specific new transports can assume that they can design new transport parameter schemas following the existing data model for individual transport parameters (no new data types or constraint keywords, same treatment of "auto", null, etc.) and will be able to publish these against a registered transport type in the Parameter Registers.

@peterbrightwell
Copy link
Contributor

Architecture Review Group review: place on backlog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants