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

Integraci贸n de aplicaciones con Cross Reference Cross Reference o Referencias cruzadas es una de las t茅cnicas m谩s utilizadas para la integraci贸n de aplicaciones basadas en Arquitectura SOA, en don...
驴Que son los microservicios? Justo cuando nos est谩bamos empezando a acostumbrar a SOA, llegan los microservicios para confundirnos m谩s, y es que SOA y microservicios tiene un ...
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 *