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

Add support for Protocol Info objects #170

Merged
merged 10 commits into from
Mar 13, 2019
Merged

Conversation

fmvilas
Copy link
Member

@fmvilas fmvilas commented Mar 10, 2019

What?

Fixes #41
Fixes #42
Fixes #164

Proposal

ProtocolInfo objects are opaque objects that may be used by tools to perform/add protocol-specific operations/features. Although the object is opaque from a specification point of view, we'll maintain a catalog of protocolInfo objects, so they are standardized across tools but don't compromise the specification. That doesn't stop anyone to use custom protocolInfo objects, at the expense of creating the tooling to support them.

ProtocolInfo objects can be attached to:

  • Channels: Describes protocol-specific information about the channel, e.g., queue name, exchange name or partition number.
  • Operations: Describes protocol-specific information about the operation. Example: noAck (AMQP).
  • Messages: Describes protocol-specific information about the message. Examples: protocol headers/properties like QoS (MQTT), delivery_mode (AMQP), message key (Kafka), etc.

Reusing protocolInfo objects will be possible through traits (#108) and overlays (#107).

Missing things

  • Add to Markdown version of the specification.
  • Add to JSON Schema version of the specification.

@fmvilas
Copy link
Member Author

fmvilas commented Mar 10, 2019

@RobertDiebels @gmr ☝️ early draft of the new feature to support protocol-specific information.

channelIsQueue: true
queue:
randomName: true
exclusive: true
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, ignore the "quality" of the amqp-0-9-1 object here. The definition of a specific protocol object must be done separately. This example is just to illustrate the feature.

noAck: true
properties:
correlation_id:
type: string
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, ignore the "quality" of the amqp-0-9-1 object here. The definition of a specific protocol object must be done separately. This example is just to illustrate the feature.

@fmvilas fmvilas self-assigned this Mar 11, 2019
@fmvilas fmvilas changed the title [WIP] Protocol Objects/Maps/Extensions Protocol Objects/Maps/Extensions Mar 11, 2019
@fmvilas fmvilas changed the title Protocol Objects/Maps/Extensions Add support for Protocol Info objects Mar 12, 2019
@RobertDiebels
Copy link

@RobertDiebels @gmr ☝️ early draft of the new feature to support protocol-specific information.

+1 for the traits compatibility. Re-using protocol-info seems super useful.

@fmvilas
Copy link
Member Author

fmvilas commented Mar 13, 2019

BTW, there's already a proposal for traits: #108.

@fmvilas fmvilas merged commit a9b2e2b into master Mar 13, 2019
@fmvilas fmvilas deleted the feature/protocol-objects branch March 13, 2019 19:31
@asyncapi-bot
Copy link
Contributor

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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