AsyncAPI Spec 2.2.0 Release Notes

Lukasz Gornicki

·3 min read

I'm happy to share that AsyncAPI specification 2.2.0 is here. Check out all the goodies that it brings.

This is a minor release, and it doesn't bring any breaking changes. You can switch to it by modifying the following value in your AsyncAPI file asyncapi: '2.1.0' into asyncapi: '2.2.0'

Assigning channels to servers

This feature allows the definition of AsyncAPI documents for applications with more selective use of channels and servers. An example is message protocol adapters that consume messages from one server (say, Kafka) and publish those messages to another server (say, Anypoint MQ).

Now you can add a new servers property to Channel Item Object. It must be a list of server names provided as a string.

1description: This application publishes WebUICommand messages to an AMQP queue on RabbitMQ brokers in the Staging and Production environments.
2servers:
3  - rabbitmqBrokerInProd
4  - rabbitmqBrokerInStaging
5subscribe:
6  message:
7    $ref: "#/components/messages/WebUICommand"
8bindings:
9  amqp:
10    is: queue

Names of servers must match the names of the servers defined in the Servers Object. This new property is optional, so moving from 2.1.0 to 2.2.0 is as easy as changing the specification version in your current AsyncAPI file. If servers is absent or empty, the given channel must be available on all servers defined in the Servers Object, like the previous version.

For more details, check out this pull request.

We heard some community members asking for this feature. It was Gerald Loeffler that decided to champion the proposal and lead it until it got released. Thank you 🙏.

New protocol bindings

The specification is now extended to support the following custom protocols through the bindings feature:

Become a contributor

Pushing things through into the specification is not an easy process. It requires a lot of time and patience, but it is worth it. Have a look at our contribution guide and start contributing.

Conclusions

Are you wondering how we managed to release 2.2.0 just three months after 2.1.0? I recommend you familiarize yourself with the AsyncAPI release process. The next release is scheduled for January 2022. Later releases are in April, June and September, according to the agreed release cadence.

Meme showing a knight, Ned Stark from Game of Thrones. Description says: Brace yourself, all the stars in heaven say 3.0.0 version is coming.

Does the above meme give you mixed feelings? Are you afraid of possible changes, or actually happy to see it coming? Don't overthink it! Join our Slack and talk to us, or check out the 3.0.0 milestone.

Photo by Jeremy Thomas on Unsplash