spec Documentation

The AsyncAPI specification allows you to create machine-readable definitions of your asynchronous APIs.

5,180 stars JavaScript JavaScript 1 file Β· ~25,700 tokens #amqp#asyncapi#kafka#mqtt#reactive#specification#stomp#websockets
RAW Doc

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.

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

Fran MΓ©ndezπŸ’¬ πŸ› πŸ“ πŸ“– πŸ€” πŸš‡ 🚧 πŸ‘€ βœ… πŸ“’ Lukasz GornickiπŸ“– πŸ€” πŸ‘€ πŸ’¬ πŸ“ πŸ“’ 🚧 πŸš‡ Mike RalphsonπŸ’¬ πŸ“– πŸ€” πŸš‡ πŸ‘€ 🚧 raisel melianπŸ’¬ πŸ› πŸ“– πŸ€” 🚧 πŸ‘€ Chris WoodπŸ€” πŸ“– Jonathan SchabowskyπŸ“– πŸ€” Victor RomeroπŸ€” πŸ‘€ Antonio GarroteπŸ€” πŸ‘€ πŸ“– Jonathan StoikovitchπŸ’‘ πŸ€” πŸ‘€
Jonas LagoniπŸ› πŸ“– πŸ€” πŸ’¬ πŸ‘€ πŸ’‘ Waleed AshrafπŸ“’ πŸ€” πŸ“– πŸ’‘ Andrzej JarzynaπŸ“’ Emmelyn WangπŸ“ πŸ€” πŸ“– πŸ“’ Marc DiPasqualeπŸ“ πŸ“’ πŸ‘€ πŸ› πŸ€” πŸ“Ή Gerald LoefflerπŸ“– πŸ› πŸ€” Dale LaneπŸ“ πŸ€” πŸ“Ή πŸ“’ βœ… πŸ“– Maciej UrbaΕ„czykπŸ‘€ πŸ€” πŸ’¬ πŸ› πŸ“– πŸ’‘ 🚧 Vladimir GorejπŸ“– πŸ› πŸ’‘ πŸ€” πŸ‘€
Lorna Jane MitchellπŸ“’ πŸ€” Laurent BroudouxπŸ“– πŸ“ πŸ“’ πŸ’‘ πŸ€” πŸ‘€ Jesse MenningπŸ“ πŸ“’ πŸ‘€ πŸ€” Sergio MoyaπŸ‘€ πŸ€” πŸ’¬ πŸ“ πŸ› πŸ“– πŸ’‘ 🚧 Alexander BaloghπŸ“– πŸ› Khuda Dad NomaniπŸ’‘ πŸ› Aaron KorverπŸ“– Orlov ValentineπŸ“– Moez BouhlelπŸ“–
Muhammad Rafly AndrianzaπŸ“– Daniel KocotπŸ“– πŸ’‘ πŸ€” sekharbans-ebayπŸ“– πŸ’‘ πŸ€” Michael DavisπŸ› πŸ“– πŸ’‘ πŸ€” Heiko HenningπŸ› πŸ’» πŸ–‹ πŸ“– πŸ’‘ πŸ€” 🚧 πŸ‘€ **Quetzalli **πŸ–‹ πŸ“– πŸ’‘ πŸ€” πŸ‘€ Akshit GuptaπŸ–‹ πŸ“– samzπŸ› πŸ–‹ πŸ“– πŸ’‘ πŸ“† Rishi🚧 πŸš‡
nickshoeπŸ› πŸ“– **Ace **πŸ“‹ πŸ€” 🚧 πŸ“’ Animesh KumarπŸ–‹ πŸ“– 🚧 Fabrizio LazzarettiπŸ“– Pavel BodiachevskiiπŸ“– πŸ› πŸ€” πŸ’¬

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:

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