Header Ads Widget

Ticker

6/recent/ticker-posts

Por qué las API asincrónicas están en aumento

 

Las API desbloquean la comunicación crítica entre nuestras aplicaciones y servicios, y los desarrolladores optimizan incansablemente estos mecanismos de comunicación. Tradicionalmente, las limitaciones de rendimiento y los diseños de aplicaciones incipientes dictaban que las API realizaban solicitudes de forma sincrónica. Esto significaba que los usuarios que realizaban acciones dentro de una aplicación, como extraer información específica de una base de datos, tenían que esperar una respuesta de backend antes de continuar.

Naturalmente, esto podría obstaculizar los flujos de trabajo en diversos grados. Los usuarios que esperan aprovechar múltiples funciones dependientes de API en una rápida sucesión se enfrentan a cuellos de botella. Las solicitudes de API síncronas pueden ser ultrarrápidas o tardar varios minutos en ejecutarse. El último caso es especialmente preocupante. Los desarrolladores necesitaban una mejor solución.

Introduciendo Asynchronous
Ahora, considere esa experiencia individualizada y cómo el problema podría agravarse en toda una base de usuarios. Las aplicaciones modernas en contenedores están diseñadas para escalar rápidamente con la actividad del usuario. Más usuarios significa más solicitudes y una letanía de prioridades en competencia desde la perspectiva de la aplicación. Las API asincrónicas ayudan a abordar este desafío. Estas API permiten procesar solicitudes relativamente lentas en segundo plano mientras se realizan otras solicitudes .

Este enfoque hace que las solicitudes fluyan sin problemas. Es esencial para aplicaciones robustas, y especialmente software empresarial, que pueden registrar cientos de miles de sesiones de usuario por día. Cada usuario puede generar más de una docena de llamadas a la API por sesión, lo que hace que la asincronicidad sea esencial.

La práctica refleja el desarrollo web frontend con respecto a JavaScript. Muchas páginas web requieren JS para convocar contenido dinámico, renderizar de manera efectiva o proporcionar cierto grado de interactividad. Debido a que estos scripts pueden tardar tanto en cargarse (dentro del DOM) y ejecutarse, agregar un asyncatributo convenientemente permite que otros scripts se ejecuten simultáneamente.

En general, se argumenta que las API asincrónicas delegan la comunicación entre servicios internos y externos de manera más inteligente. También se conocen como API controladas por eventos o incluso API reactivas. Las tecnologías asincrónicas aprovechan los canales de comunicación de respaldo remotos entre el cliente y el servidor, lo que ahorra ancho de banda para solicitudes adicionales. Las tecnologías asincrónicas incluyen las siguientes :

  • WebSockets
  • WebHooks
  • Suscripciones GraphQL
Eventos enviados por el servidor
Se supone que una API asincrónica experimentará algún tipo de retraso, ya que a menudo aprovechará recursos que no están disponibles de inmediato. Cuando el recurso está listo, la API devuelve la llamada al solicitante. Este enfoque también es preferible cuando la disponibilidad del servicio es baja. Fundamentalmente, las API asincrónicas han aumentado para admitir aplicaciones saturadas de demanda en múltiples plataformas. Estas API no son nada nuevo (con una historia de casi 20 años) pero se han vuelto más prominentes últimamente.

Beneficios de las API asincrónicas
Sabemos que las API asincrónicas son excelentes en casos en los que la actividad del usuario es intensa. Estas solicitudes de API se destacan en la ejecución de tareas en segundo plano sin interferir entre sí. Esto es esencial en un entorno de microservicios donde las características son más pequeñas, más integradas y las API son más abundantes.

Las aplicaciones actuales son ahora más interactivas que nunca desde el punto de vista de la interfaz de usuario . Muchos elementos son dinámicos y una experiencia de usuario fluida significa eliminar los retrasos característicos de las API síncronas. Esta es la razón por la que async es a menudo sinónimo de "reactivo". Cuando el usuario proporciona una entrada, el trabajo de la API es traducir los cambios de backend en actualizaciones de frontend. Aunque está lejos de ser una lista exhaustiva, es útil para aplicaciones que brindan notificaciones, mensajes, feeds de contenido o incluso colaboración en tiempo real impulsadas por eventos.

Estas API también están recibiendo un amplio apoyo de la comunidad de desarrolladores. La iniciativa OpenAPI ha sido fundamental para que las arquitecturas RESTful despeguen en los últimos años. Del mismo modo, los desarrolladores se han unido para crear la Iniciativa AsyncAPI . Este esfuerzo comunitario tiene como objetivo crear herramientas de código abierto para crear aplicaciones impulsadas por eventos . Respaldada por empresas destacadas y entusiastas por igual, la tecnología tiene mucha aceptación. Hay un impulso hacia la formación de un estándar asincrónico definitivo para que el desarrollo sea coherente y accesible.

Debido a que la comunicación API asíncrona está estandarizada en gran medida, es mucho más fácil definir cómo pueden interactuar varias API. En el pasado, cada procedimiento o "protocolo" individual tenía que elaborarse caso por caso. Eso no solo requiere mucho tiempo, sino que también es costoso. Además, estos formatos de mensajes asincrónicos tienen estructuras definidas. El diseño asincrónico tiende a ser unificado, compatible con esquemas y agnóstico al protocolo.

Las API asincrónicas son ideales para cálculos de larga duración en el lado de la complejidad del espectro. Esta es una forma de aumentar la eficiencia en toda su infraestructura, que es casi seguro que será más compleja que los monolitos de antaño. Se utilizan mejor para aplicaciones de subprocesos múltiples donde existen operaciones complejas en un bucle. Vemos esto mucho cuando combinamos frontend JS con backend Node , porque los bucles asincrónicos son importantes.

Debido a la naturaleza de las condiciones compatibles con async, es común y beneficioso aprovechar estas API en entornos cliente-servidor. Estos utilizan servidores web y de red ocupados. El posterior aumento de Node.js, Twisted y otras bibliotecas relacionadas se puede atribuir a esta relación.

Si el rendimiento y los comentarios de los usuarios son fundamentales dentro de un entorno complejo, definitivamente vale la pena echar un segundo vistazo a las API asincrónicas. Los desarrolladores que dependen de la programación paralela obtendrán un gran rendimiento sin incurrir en gastos generales innecesarios.

Ejemplos populares en la naturaleza
Como puede imaginar, muchas empresas pequeñas y grandes aprovechan las API asincrónicas dentro de sus aplicaciones. Stripe, uno de los proveedores de API de pago más grandes del mundo, aprovecha las API asincrónicas para solicitudes de extracción y envío. Estos son clave en varios protocolos de pago que utilizan la API de fuentes de Stripe . Las integraciones de la compañía con socios como Plaid también tienen elementos asincrónicos vinculados a WebHooks.

A principios de este año, eBay adoptó el estándar AsyncAPI en evolución para los contratos API asíncronos. La empresa ha encontrado este enfoque extremadamente favorable:

“[AsyncAPI es] extremadamente útil debido a la facilidad de uso que resulta de la delimitación de canales, protocolos y enlaces, la separación de preocupaciones entre publicación y suscripción, y la separación de encabezados específicos de protocolo y de aplicación”.

Gracias a la presencia de esquemas reutilizables, AsyncAPI también es compatible con la especificación OpenAPI. Esto ayudó a cimentar la decisión de eBay y, ciertamente, las de otros en la industria.

Por último, la propia interfaz asíncrona CICS de IBM facilita el acceso a múltiples servicios externos con solicitudes de manera eficiente. El proceso de solicitud reduce enormemente los tiempos de espera; permite que se procesen simultáneamente “múltiples transacciones secundarias”. CICS utiliza contenedores y canales especializados para canalizar los datos de regreso al solicitante una vez que están disponibles.

En cualquier caso, las API asincrónicas no son simplemente otra moda pasajera en el espacio tecnológico, están aquí para quedarse. Con las aplicaciones cada vez más complejas e interdependientes, es esencial fomentar una comunicación más eficiente. Vale la pena señalar que los estilos asincrónicos no están diseñados exclusivamente para reemplazar las alternativas sincrónicas. Por el contrario, ambas arquitecturas de API tienen sus propios casos de uso y se complementan entre sí de formas únicas .


Publicar un comentario

0 Comentarios