## 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)