Fran and Vaughn discuss the benefits of AsyncAPI in an event-driven architecture, including eliminating repeated code in microservices, inter-service shared AsyncAPI documents, versioned schema definitions, YAML vs KDL, add-on tools and templates, and their impact on productivity. The podcast also touches on Fran's background and regional specialties in Spain.
AsyncAPI is a specification and community-driven initiative that enables defining asynchronous communication in event-driven architecture and messaging protocols, applicable across various platforms and technologies.
ACN-GAPI, inspired by OpenAPI, allows users to define channels, messages, and payloads, with the flexibility of not enforcing versioning at the individual message level but relying on schema registries and HTTP URLs to manage versions.
Deep dives
Introduction and background
In this podcast episode, Von Verda interviews Fran Mendez, founder of the ACN-GAPI project. Fran explains that ACN-GAPI is inspired by OpenAPI and is focused on defining asynchronous communication using messaging protocols. ACN-GAPI started as a specification and a few tools, but it has now grown into a community-driven initiative with numerous tools and a growing community of contributors.
ACN-GAPI and Event-Driven Architecture
Fran discusses how ACN-GAPI is specifically designed for event-driven architecture (EDA) and messaging protocols like RabbitMQ and MQTT. ACN-GAPI allows users to define channels, messages, and payloads, including metadata like message headers. Fran emphasizes that ACN-GAPI is not limited to a specific programming language or skill, making it applicable across various platforms and technologies.
Versioning and Management
Fran explains that ACN-GAPI does not enforce versioning at the individual message level, but rather relies on schema registries and HTTP URLs to manage versions of schemas and messages. He mentions that developers should be mindful of maintaining the consistency between the ACN-GAPI file and the code implementation to avoid potential discrepancies.
Code Generation and Tooling
Fran highlights the importance of code generation and the ACN-GAPI framework's generator tool. The generator uses templates to generate code and documentation based on the ACN-GAPI file. Fran acknowledges that while some developers have concerns about generated code, he emphasizes that templates can be customized and developers can create their own templates to suit their specific needs.
Vaughn and Fran meander through the topics AsyncAPI and Event-Driven Architecture using Fran's "thinking out loud" style. They examine the motivation for AsyncAPI, which rescued a startup product team from prolific boilerplate infrastructure code. Every microservice they created suffered from enormous amounts of repeated code, which only got worse with frequent exponential growth of microservices. They discuss other areas such as inter-service shared AsyncAPI documents, versioned schema definitions, topic naming with blended message (e.g. command and event) names, topic versioning pros and cons, YAML vs KDL, add-on tools and templates, and how all these influence productivity.
Fran is the founder of the AsyncAPI Initiative and also works as Director of Engineering at Postman. In his spare time, he enjoys practicing different sports and disciplines, especially those related to circus.