## File: README.md
[](https://www.asyncapi.com)
## Read the specification
The latest draft specification can be found at [spec/asyncapi.md](./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](https://github.com/asyncapi/spec/blob/v3.1.0/spec/asyncapi.md) (latest) ([website](https://www.asyncapi.com/docs/reference/specification/latest))
Click to see reference links to older versions of the specification.
- [Version 3.0.0](https://github.com/asyncapi/spec/blob/v3.0.0/spec/asyncapi.md)
- [Version 2.6.0](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md)
- [Version 2.5.0](https://github.com/asyncapi/spec/blob/v2.5.0/spec/asyncapi.md)
- [Version 2.4.0](https://github.com/asyncapi/spec/blob/v2.4.0/spec/asyncapi.md)
- [Version 2.3.0](https://github.com/asyncapi/spec/blob/v2.3.0/spec/asyncapi.md)
- [Version 2.2.0](https://github.com/asyncapi/spec/blob/v2.2.0/spec/asyncapi.md)
- [Version 2.1.0](https://github.com/asyncapi/spec/blob/v2.1.0/spec/asyncapi.md)
- [Version 2.0.0](https://github.com/asyncapi/spec/blob/2.0.0/versions/2.0.0/asyncapi.md)
- [Version 1.2.0](https://github.com/asyncapi/spec/blob/1.2.0/README.md) (deprecated)
- [Version 1.1.0](https://github.com/asyncapi/spec/blob/1.1.0/README.md) (deprecated)
- [Version 1.0.0](https://github.com/asyncapi/spec/blob/1.0.0/README.md) (deprecated)
Looking for the JSON Schema files? Check out our [spec-json-schemas](https://github.com/asyncapi/spec-json-schemas) repo.
Feel like contributing? Check out our [contributor's guide](./CONTRIBUTING.md).
## Examples
Check out the [examples](https://github.com/asyncapi/asyncapi/blob/master/examples) directory for examples.
## Case Studies and Adopters
Check out the [AsyncAPI website](https://www.asyncapi.com/casestudies) 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](https://www.asyncapi.com/finance) and [join the club](https://opencollective.com/asyncapi).
### Platinum
### Gold
### Silver
### Bronze
## Contributors
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
| [**Fran MΓ©ndez**](http://www.fmvilas.com)[π¬](#question-fmvilas) [π](https://github.com/asyncapi/spec/issues?q=author%3Afmvilas) [π](#blog-fmvilas) [π](https://github.com/asyncapi/spec/commits?author=fmvilas) [π€](#ideas-fmvilas) [π](#infra-fmvilas) [π§](#maintenance-fmvilas) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Afmvilas) [β
](#tutorial-fmvilas) [π’](#talk-fmvilas) | [**Lukasz Gornicki**](http://resume.github.io/?derberg)[π](https://github.com/asyncapi/spec/commits?author=derberg) [π€](#ideas-derberg) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Aderberg) [π¬](#question-derberg) [π](#blog-derberg) [π’](#talk-derberg) [π§](#maintenance-derberg) [π](#infra-derberg) | [**Mike Ralphson**](http://mermade.github.io)[π¬](#question-MikeRalphson) [π](https://github.com/asyncapi/spec/commits?author=MikeRalphson) [π€](#ideas-MikeRalphson) [π](#infra-MikeRalphson) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3AMikeRalphson) [π§](#maintenance-MikeRalphson) | [**raisel melian**](https://github.com/rmelian)[π¬](#question-rmelian) [π](https://github.com/asyncapi/spec/issues?q=author%3Armelian) [π](https://github.com/asyncapi/spec/commits?author=rmelian) [π€](#ideas-rmelian) [π§](#maintenance-rmelian) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Armelian) | [**Chris Wood**](https://github.com/SensibleWood)[π€](#ideas-SensibleWood) [π](https://github.com/asyncapi/spec/commits?author=SensibleWood) | [**Jonathan Schabowsky**](https://github.com/jschabowsky)[π](https://github.com/asyncapi/spec/commits?author=jschabowsky) [π€](#ideas-jschabowsky) | [**Victor Romero**](https://github.com/vromero)[π€](#ideas-vromero) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Avromero) | [**Antonio Garrote**](http://antoniogarrote.wordpress.com)[π€](#ideas-antoniogarrote) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Aantoniogarrote) [π](https://github.com/asyncapi/spec/commits?author=antoniogarrote) | [**Jonathan Stoikovitch**](https://ramses.tech)[π‘](#example-jstoiko) [π€](#ideas-jstoiko) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Ajstoiko) |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [**Jonas Lagoni**](https://github.com/jonaslagoni)[π](https://github.com/asyncapi/spec/issues?q=author%3Ajonaslagoni) [π](https://github.com/asyncapi/spec/commits?author=jonaslagoni) [π€](#ideas-jonaslagoni) [π¬](#question-jonaslagoni) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Ajonaslagoni) [π‘](#example-jonaslagoni) | [**Waleed Ashraf**](https://waleedashraf.me/)[π’](#talk-WaleedAshraf) [π€](#ideas-WaleedAshraf) [π](https://github.com/asyncapi/spec/commits?author=WaleedAshraf) [π‘](#example-WaleedAshraf) | [**Andrzej Jarzyna**](https://github.com/jerzyn)[π’](#talk-jerzyn) | [**Emmelyn Wang**](https://linkedin.com/in/emmelyn)[π](#blog-lifewingmate) [π€](#ideas-lifewingmate) [π](https://github.com/asyncapi/spec/commits?author=lifewingmate) [π’](#talk-lifewingmate) | [**Marc DiPasquale**](https://marcd.dev)[π](#blog-Mrc0113) [π’](#talk-Mrc0113) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3AMrc0113) [π](https://github.com/asyncapi/spec/issues?q=author%3AMrc0113) [π€](#ideas-Mrc0113) [πΉ](#video-Mrc0113) | [**Gerald Loeffler**](http://www.gerald-loeffler.net/)[π](https://github.com/asyncapi/spec/commits?author=GeraldLoeffler) [π](https://github.com/asyncapi/spec/issues?q=author%3AGeraldLoeffler) [π€](#ideas-GeraldLoeffler) | [**Dale Lane**](http://dalelane.co.uk/)[π](#blog-dalelane) [π€](#ideas-dalelane) [πΉ](#video-dalelane) [π’](#talk-dalelane) [β
](#tutorial-dalelane) [π](https://github.com/asyncapi/spec/commits?author=dalelane) | [**Maciej UrbaΕczyk**](https://github.com/magicmatatjahu)[π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Amagicmatatjahu) [π€](#ideas-magicmatatjahu) [π¬](#question-magicmatatjahu) [π](https://github.com/asyncapi/spec/issues?q=author%3Amagicmatatjahu) [π](https://github.com/asyncapi/spec/commits?author=magicmatatjahu) [π‘](#example-magicmatatjahu) [π§](#maintenance-magicmatatjahu) | [**Vladimir Gorej**](https://vladimirgorej.com/)[π](https://github.com/asyncapi/spec/commits?author=char0n) [π](https://github.com/asyncapi/spec/issues?q=author%3Achar0n) [π‘](#example-char0n) [π€](#ideas-char0n) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Achar0n) |
| [**Lorna Jane Mitchell**](http://www.lornajane.net/)[π’](#talk-lornajane) [π€](#ideas-lornajane) | [**Laurent Broudoux**](http://medium.com/@lbroudoux)[π](https://github.com/asyncapi/spec/commits?author=lbroudoux) [π](#blog-lbroudoux) [π’](#talk-lbroudoux) [π‘](#example-lbroudoux) [π€](#ideas-lbroudoux) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Albroudoux) | [**Jesse Menning**](https://github.com/jmenning-solace)[π](#blog-jmenning-solace) [π’](#talk-jmenning-solace) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Ajmenning-solace) [π€](#ideas-jmenning-solace) | [**Sergio Moya**](https://github.com/smoya)[π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Asmoya) [π€](#ideas-smoya) [π¬](#question-smoya) [π](#blog-smoya) [π](https://github.com/asyncapi/spec/issues?q=author%3Asmoya) [π](https://github.com/asyncapi/spec/commits?author=smoya) [π‘](#example-smoya) [π§](#maintenance-smoya) | [**Alexander Balogh**](https://github.com/balogal)[π](https://github.com/asyncapi/spec/commits?author=balogal) [π](https://github.com/asyncapi/spec/issues?q=author%3Abalogal) | [**Khuda Dad Nomani**](https://github.com/KhudaDad414)[π‘](#example-KhudaDad414) [π](https://github.com/asyncapi/spec/issues?q=author%3AKhudaDad414) | [**Aaron Korver**](https://github.com/aaronkorver)[π](https://github.com/asyncapi/spec/commits?author=aaronkorver) | [**Orlov Valentine**](https://github.com/xunto)[π](https://github.com/asyncapi/spec/commits?author=xunto) | [**Moez Bouhlel**](https://lejenome.tik.tn)[π](https://github.com/asyncapi/spec/commits?author=lejenome) |
| [**Muhammad Rafly Andrianza**](https://github.com/luphieanza)[π](https://github.com/asyncapi/spec/commits?author=luphieanza) | [**Daniel Kocot**](https://danielkocot.github.io/)[π](https://github.com/asyncapi/spec/commits?author=danielkocot) [π‘](#example-danielkocot) [π€](#ideas-danielkocot) | [**sekharbans-ebay**](https://github.com/sekharbans-ebay)[π](https://github.com/asyncapi/spec/commits?author=sekharbans-ebay) [π‘](#example-sekharbans-ebay) [π€](#ideas-sekharbans-ebay) | [**Michael Davis**](http://www.damaru.com/)[π](https://github.com/asyncapi/spec/issues?q=author%3Adamaru-inc) [π](https://github.com/asyncapi/spec/commits?author=damaru-inc) [π‘](#example-damaru-inc) [π€](#ideas-damaru-inc) | [**Heiko Henning**](https://github.com/GreenRover)[π](https://github.com/asyncapi/spec/issues?q=author%3AGreenRover) [π»](https://github.com/asyncapi/spec/commits?author=GreenRover) [π](#content-GreenRover) [π](https://github.com/asyncapi/spec/commits?author=GreenRover) [π‘](#example-GreenRover) [π€](#ideas-GreenRover) [π§](#maintenance-GreenRover) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3AGreenRover) | [**Quetzalli **](http://www.docsasecosystem.com)[π](#content-alequetzalli) [π](https://github.com/asyncapi/spec/commits?author=alequetzalli) [π‘](#example-alequetzalli) [π€](#ideas-alequetzalli) [π](https://github.com/asyncapi/spec/pulls?q=is%3Apr+reviewed-by%3Aalequetzalli) | [**Akshit Gupta**](https://github.com/akkshitgupta)[π](#content-akkshitgupta) [π](https://github.com/asyncapi/spec/commits?author=akkshitgupta) | [**samz**](https://amzani.com/)[π](https://github.com/asyncapi/spec/issues?q=author%3AAmzani) [π](#content-Amzani) [π](https://github.com/asyncapi/spec/commits?author=Amzani) [π‘](#example-Amzani) [π](#projectManagement-Amzani) | [**Rishi**](http://rishikaushik.com)[π§](#maintenance-kaushik-rishi) [π](#infra-kaushik-rishi) |
| [**nickshoe**](https://github.com/nickshoe)[π](https://github.com/asyncapi/spec/issues?q=author%3Anickshoe) [π](https://github.com/asyncapi/spec/commits?author=nickshoe) | [**Ace **](https://github.com/AceTheCreator)[π](#eventOrganizing-AceTheCreator) [π€](#ideas-AceTheCreator) [π§](#maintenance-AceTheCreator) [π’](#talk-AceTheCreator) | [**Animesh Kumar**](https://github.com/AnimeshKumar923)[π](#content-AnimeshKumar923) [π](https://github.com/asyncapi/spec/commits?author=AnimeshKumar923) [π§](#maintenance-AnimeshKumar923) | [**Fabrizio Lazzaretti**](https://lazzaretti.me/)[π](https://github.com/asyncapi/spec/commits?author=Lazzaretti) | [**Pavel Bodiachevskii**](https://www.linkedin.com/in/pavel-bo/)[π](https://github.com/asyncapi/spec/commits?author=Pakisan) [π](https://github.com/asyncapi/spec/issues?q=author%3APakisan) [π€](#ideas-Pakisan) [π¬](#question-Pakisan) | | | | |
This project follows the [all-contributors](https://github.com/all-contributors/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)](./frontend/asyncapi.yaml) where users interact through the website, where they can like comments.
- [A backend WebSocket server (./backend)](./backend/asyncapi.yaml) that sends and receives events for the UI to update in real-time.
- [A comment service (./comments-service)](./comments-service/asyncapi.yaml) which processes all events related to comments through a message broker.
- [A notification service (./notification-service)](./notification-service/asyncapi.yaml) which ensures all relevant parties to the comment is notified.
- [A public-facing API (./public-api)](./public-api/asyncapi.yaml) which is an external application, where anyone outside the organization can get notified about updates.
[](https://mermaid-js.github.io/mermaid-live-editor/edit/#eyJjb2RlIjoiXG5ncmFwaCBURFxuIHNlcnZlcjFbKHdzOi8vbXljb21wYW55LmNvbS93cyldXG5XZWJzaXRlQmFja2VuZFtXZWJzaXRlIEJhY2tlbmRdXG5XZWJzaXRlV2ViU29ja2V0Q2xpZW50W1dlYnNpdGUgV2ViU29ja2V0IENsaWVudF1cbldlYnNpdGVXZWJTb2NrZXRDbGllbnQgLS0gbGlrZS9jb21tZW50IC0tPiBzZXJ2ZXIxXG5zZXJ2ZXIxIC0tIGxpa2UvY29tbWVudCAtLT4gV2Vic2l0ZUJhY2tlbmRcbldlYnNpdGVCYWNrZW5kIC0tIHVwZGF0ZS9jb21tZW50L2xpa2VzIC0tPiBzZXJ2ZXIxXG5zZXJ2ZXIxIC0tIHVwZGF0ZS9jb21tZW50L2xpa2VzIC0tPiBXZWJzaXRlV2ViU29ja2V0Q2xpZW50XG5zZXJ2ZXIyWyhtcXR0Oi8vdGVzdC5tb3NxdWl0dG8ub3JnKV1cbldlYnNpdGVCYWNrZW5kIC0tIGNvbW1lbnQvbGlrZWQgLS0-IHNlcnZlcjJcbkNvbW1lbnRzU2VydmljZVtDb21tZW50cyBTZXJ2aWNlXVxuc2VydmVyMiAtLSBjb21tZW50L2xpa2VkIC0tPiBDb21tZW50c1NlcnZpY2Vcbk5vdGlmaWNhdGlvbnNTZXJ2aWNlW05vdGlmaWNhdGlvbnMgU2VydmljZV1cbnNlcnZlcjIgLS0gY29tbWVudC9saWtlZCAtLT4gTm90aWZpY2F0aW9uc1NlcnZpY2VcbkNvbW1lbnRzU2VydmljZSAtLSBcImNvbW1lbnQve2NvbW1lbnRJZH0vY2hhbmdlZFwiIC0tPiBzZXJ2ZXIyXG5zZXJ2ZXIyIC0tIFwiY29tbWVudC97Y29tbWVudElkfS9jaGFuZ2VkXCIgLS0-IFdlYnNpdGVCYWNrZW5kXG5QdWJsaWNBUElbUHVibGljIEFQSV1cbnNlcnZlcjIgLS0gXCJjb21tZW50L2xpa2VkXCIgLS0-IFB1YmxpY0FQSSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkYXJrXCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9)
Fig.1 - Mermaid diagram for the system, partly generated using [Cupid](https://github.com/asyncapi/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](https://www.schemastore.org/json/) 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](https://studio.asyncapi.com/).
If you prefer to use your favourite IDE, there are official extensions for [VSCode](https://marketplace.visualstudio.com/items?itemName=asyncapi.asyncapi-preview) and [IntelliJ IDEA](https://plugins.jetbrains.com/plugin/15673-asyncapi)