How do you go about adding a stream object to AsyncAPI?
We are actively working with the AsyncAPI
team to help push forward the specification for defining message-driven APIs. The specification is in its early stages, but it is moving forward fast, adding new valuable features to meet the demand of the real-time, event and message-driven world that is unfolding around us. The specification is a sister specification to the OpenAPI specification
but is looking to stay focused just on the message-driven APIs that OpenAPI can't properly describe.
AsyncAPI recently introduced a new root-level object called stream, which will allow us to properly describe streams our customers our publishing using Streamdata.io. Here is an example of the stream object, from the latest pull request on the specification
- $ref: '#/components/messages/chatMessage'
- $ref: '#/components/messages/heartbeat'
Providing a framing for the message being stream, as well as the heartbeat involved--also allowing you to define the delimiter and type of stream. The pull request is fresh
, so we are working to try and profile a handful of Server-Sent Event (SSE) events using the new object so that we can provide some constructive feedback. The AsyncAPI is very interested in getting as much feedback on the latest pull request, so if you have any streaming APIs you'd like to define with the specification, I recommend sharing your thoughts with them.
We see AsyncAPI playing an important role in helping us define and document the growing number of streaming APIs emerging across the landscape. We are interested in the documentation, and other tooling that gets developed using the specification, but we are also really interested in how we can also use it to make streaming APIs more discoverable. We are working to profile as many APIs as we can to help provide feedback to the AsyncAPI team, but we also want to use the specification as the backbone for evolving the Streamdata.io API Gallery
to become a directory of real-time APIs that anyone can tap into to get whatever they need to satisfy their appetite for data, content, and other resources.