File: README.md
Read the specification
The latest draft specification can be found at spec/asyncapi.md which tracks the latest commit to the master branch in this repository.
The human-readable markdown file is the source of truth for the specification.
Version 3.1.0 (latest) (website)
Click to see reference links to older versions of the specification.
Version 1.2.0 (deprecated)
Version 1.1.0 (deprecated)
Version 1.0.0 (deprecated)
Looking for the JSON Schema files? Check out our spec-json-schemas repo.
Feel like contributing? Check out our contributor's guide.
Examples
Check out the examples directory for examples.
Case Studies and Adopters
Check out the AsyncAPI website to see the list of AsyncAPI adopters and their use cases.
Our Sponsors
Want to become a sponsor? Learn what we do with sponsors' money and join the club.
Platinum
Gold
Silver
Bronze
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
File: examples/social-media/readme.md
Small social media example
Say we have a social network, a very basic one, where all you can do is upvoting comments.
The individual services are defined as such:
- A frontend application (./frontend) where users interact through the website, where they can like comments.
- A backend WebSocket server (./backend) that sends and receives events for the UI to update in real-time.
- A comment service (./comments-service) which processes all events related to comments through a message broker.
- A notification service (./notification-service) which ensures all relevant parties to the comment is notified.
- A public-facing API (./public-api) which is an external application, where anyone outside the organization can get notified about updates.
Fig.1 - Mermaid diagram for the system, partly generated using Cupid.
This ensures that we try to describe the following use-cases mixed together:
- A public API, and how others may interact with our system.
- A broker setup to include the most widely used scenario
- A WebSocket server and client to ensure we dont focus only on broker centric systems.
- Reusability where possible, to ensure no dublication of definitions
File: examples/README.md
Examples
In this directory, you can find some examples of AsyncAPI documents.
Do you have an example that could be valuable? Open a pull request to contribute it.
File naming
You may notice asyncapi in the the name of each example. We recommend doing the same with your AsyncAPI document. This way you enable features like documentation display on node hover, auto completion and validation of your AsyncAPI documents in IDEs like VSCode or IntelliJ IDEA. IDEs integrate with SchemaStore where AsyncAPI specification JSON Schema files are referenced. Some IDEs do it by default, some, like VSCode require you to install additional extensions, like YAML extension.
Editors
To edit your AsyncAPI documents, you can use AsyncAPI Studio.
If you prefer to use your favourite IDE, there are official extensions for VSCode and IntelliJ IDEA