Microservices and Event-Driven Architecture are being adopted in many companies nowadays. As the number of services increases, it becomes necessary to document and standardize the communication between services.
At Relayr GmbH we have dozens of services written in Node.js, Scala and other languages also. These services communicate with each other over different channels including Kafka and MQTT on many topics and messages types. We had JSON schemas defined within services to validate and test the payload. It was hard for everyone to keep track of all the types of messages, their payload and to know which types of messages each service is publishing/consuming.
We started using AsyncAPI to document every message including their payload, required and optional fields. AsyncAPI became the source of truth of all the Async communication between services. We came up with asyncapi-validator to validate every message at run time using AsyncAPI schema definition.
This talk will be about how we used AsyncAPI for better documentation and as the source of truth. We'll also see, how we used the asyncapi-validator to validate messages using AsyncAPI schema definition.