Webhook una alternativa al Polling

Webhook una alternativa al PollingLos Webhook solucionan una de las problemáticas más comunes en la integración de aplicaciones, que es la obtención de actualizaciones en los sistemas de terceros, pues es difícil determinar cuándo una aplicación externa tiene nueva información de interés para nuestros sistemas.

 

Solo imagina un escenario, tenemos una aplicación A y otra aplicación B, la aplicación B genera nueva información de forma recurrente. La aplicación B no sabe de la existencia de la aplicación A y la aplicación A requiere obtener las novedades de la aplicación B.

En este escenario, la aplicación A esta forzada a consultar frecuentemente por nuevas actualizaciones (Polling), lo que implica que la aplicación A no se entere al memento de los cambios, si no que tendrá que esperar a que el polling se ejecute nuevamente para obtener los nuevos datos, adicional, la aplicación B sufre un degrado en el performance, pues cada vez que la aplicación A realiza una consulta, la aplicación B tiene que buscar en la base de datos las actualizaciones, si esto lo multiplicamos por todos los posibles clientes podremos entender mejor el problema.

 

Webhook

 

Una mejor alternativa al polling tradicional, es la implementación de un Webhook, el cual consiste en crear un sistema de notificaciones mediante HTTP, para lo cual, la aplicación B permitiría que la aplicación A o cualquier otra registren una URL a cuál notificar en caso de actualizaciones. La ventaja que ofrece esta arquitectura es que la aplicación B sigue sin conocer a la aplicación A, y en su lugar solo conoce una URL a la cual deberá notificar en caso de haber actualizaciones.

 

Cuando la aplicación B tiene nuevas actualizaciones, entonces lanza una llamada a la URL de la aplicación A. En esta llamada solo se envían los datos actualizados o un identificador para que posteriormente la aplicación A consulte todo el detalle.

Arquitectura con Webhook

Dado que las notificaciones son por medio de HTTP, hace que sea mucho más simple la comunicación, pues cualquier servidor puede recibir la petición y procesar el mensaje, también es compatible con servicios REST.

 

Esta arquitectura ofrece un mejor rendimiento y una actualización en tiempo real. Para empezar, la aplicación A ya no requiere realizar consultar frecuentemente para saber si hay actualizaciones, por otra parte, la aplicación B yo requiere consultar su base de datos para cada petición, en su lugar este notificará a todos los interesados como parte del proceso.

 

También puede interesarte como notificar aplicaciones mediante un sistema de mensajería como lo JMS, que explico en el articulo JMS en las integraciones.

 

Conclusiones

 

Como podemos ver, utilizar un Webhook siempre será más eficiente que utilizar los tradicionales Polling, sin embrago, un Webhook es más complicado de implementar, pues requiere de contemplar las notificaciones en cada uno de los procesos de actualización sobre el sistema origen.

Esto no quiere decir que no debemos de utilizar polling, ya que esta arquitectura se utiliza cuando no existe otra alternativa y el sistema origen no tiene un mecanismo para notificar a los clientes.

Artículos relacionados

Single SingOn (SSO) El Single SingOn (SSO o inicio de sesión única) es la capacidad de las aplicaciones modernas para permitir a los usuarios el acceso a varias aplicacio...
Escalabilidad Horizontal y Vertical La escalabilidad es la capacidad del software para adaptarse a las necesidades de rendimiento a medida que el número de usuarios crece, las transaccio...
Que es Service-oriented architecture (SOA) En los últimos años hemos escuchado haber de SOA por todas partes, SOA aqui SOA alla y SOA por todas partes, Pero que es realmente SOA ya que en ocasi...

Oscar Blancarte

Ideológico, Innovador y emprendedor, Padre, Tecnólogo y Autor, amante de la ciencia y la tecnología en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultoría. Amante de la programación y el Ajedrez.

Deja un comentario

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