Skip to main content

AsyncAPI

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

La especificación AsyncAPI es un lenguaje completo para describir las APIs de mensajería asincrónica. Su popularidad se ha disparado en los últimos años, y continúa haciéndolo, con la creciente adopción de protocolos de IoT y arquitecturas API impulsadas por eventos.

Arquitecturas EDA

Las arquitecturas EDA son arquitecturas distribuidas y asíncronas, cuyos componentes no se comunican de la forma tradicional, es decir, esperando una respuesta a cada comunicación que se hace para cerrar la misma. En las arquitecturas asíncronas las aplicaciones lanzan eventos para que otras aplicaciones puedan reaccionar ante ellos, procesarlos y poder reaccionar o generar nuevos eventos.

 

En esta arquitectura, cada Event Processing solo tiene conocimiento de la tarea que el realiza y no tiene conocimiento de la existencia de otros Event Processing, lo cual permite que trabajen de forma autónoma.

 

¿Cómo nos ayuda AsyncAPI?

La iniciativa AsyncAPI nos ayuda especificando y estandarizando la forma de trabajar con APIs contra Arquitecturas EDA.

Es una iniciativa de código abierto que busca mejorar las Arquitecturas basadas en eventos. Similar a la especificación OpenAPI, nos permite definir una interfaz común para nuestras interfaces EDA y la parte más importante es que es multicanal. Por lo tanto, se puede utilizar la misma especificación para su API basada en MQTT o su API de Kafka. Echemos un vistazo a cómo se ve esta especificación AsyncAPI:

AsyncAPI se basa completamente en el concepto de interacción API centrada en mensajes , que normalmente se encuentra en IoT y plataformas similares. De hecho, AsyncAPI se basa en las limitaciones que se encuentran en estos sistemas, lo que a su vez creó la demanda de dicho estándar. Puede funcionar con una variedad de protocolos. Echemos un vistazo a algunos de estos. Hay protocolos que se consideran compatibles actualmente y otros que no lo son actualmente, pero que en cambio se están investigando. Algunos ejemplos son:

  • Estándares AMQP para el protocolo de cola de mensajes avanzado
  • MQTT , o Message Queue Server Telemetry Transport
  • WebSocket es un protocolo que ha sido estandarizado por el Grupo de trabajo de ingeniería de Internet como RFC 6455 junto con la inclusión de la API de WebSocket en Web IDL bajo el W3C
  • Kafka es un protocolo de código abierto que fue diseñado y lanzado en 2011 por Apache Software Foundation
  • NATS es un protocolo de aplicación pub-sub clásico
  • Google Cloud Pub / Sub es parte de la oferta de Google Cloud Platform de Google
  • CoAP, o el Protocolo de aplicación restringida

¿Cómo definir AsyncAPI?

Al definir una relación contractual muy específica entre los elementos de la API, los desarrolladores pueden controlar y gestionar con mayor precisión el flujo de estos mensajes y su salida resultante. Dado que estos mensajes generalmente se envían a un corredor, tener un contrato comúnmente definido y aceptado permite un sistema de control granular mucho más alto, lo que finalmente da como resultado un sistema más comprensible, efectivo y eficiente en general.

Sus características principales son:

  • Es extensible
  • Diseñado para ser legible
  • Es agnóstico

Conclusión

AsyncAPI es una muy buena solución para cualquier caso de uso basado en mensajes. Con grandes nombres en la industria que lo apoyan directamente, es difícil argumentar en contra de la implementación sobre la base de la usabilidad, además, su extensibilidad con su base de código de fuente abierta que ofrece excelentes oportunidades para soluciones personalizadas además de metodologías estandarizadas. AsyncAPI se trata de definir y documentar cada uno de estos componentes.

Hay un cambio de paradigma inherente a la arquitectura impulsada por eventos:

  • Los editores y suscriptores están completamente desvinculados;
  • El intercambio de datos ya no es sincrónico sino asincrónico y
  • Los datos en tránsito representan un mensaje o un evento (también conocido como cambio significativo en el estado).
Enrique Lahita

Enrique Lahita

Enrique Lahita ha escrito 2 entradas


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.