Pushpin – una librería opensource que convierte REST APIs en APIs en tiempo real

Pushpin - una librería opensource que convierte REST APIs en APIs en tiempo real Pushpin, backend, API desarrollo

“Tiempo real” se está convirtiendo en una fuerza omnipresente en la tecnología moderna. A medida que los consumidores exigen transacciones de datos más rápidas y frecuentes, las empresas invierten cada vez más en la infraestructura de productos que acelera estas transacciones.

El valor primario de Pushpin es que es una solución de código abierto que permite la inserción en tiempo real (real time push), un requisito de las API de eventos (GitHub Repo). En esencia, es un servidor proxy inverso que facilita la implementación de servicios WebSocket, HTTP streaming y HTTP long-polling. Estructuralmente, Pushpin se comunica con aplicaciones web back-end utilizando solicitudes HTTP regulares de corta vida.

Esta arquitectura proporciona algunos beneficios básicos:

  • Los lenguajes de back-end se pueden escribir en cualquier idioma y usar cualquier servidor web.
  • Los datos se pueden enviar a través de una simple solicitud HTTP POST a la API de control privado de Pushpin.
  • Es invisible para los clientes conectados.
  • Gestiona elementos con estado actuando como la parte responsable cuando se requieren datos de su servidor backend.
  • Escalable horizontalmente al no requerir comunicación entre instancias de inserción.
  • Aprovecha un modelo de publicación y suscripción para la transmisión de datos.
  • Puede actuar como un servidor proxy y un broker publicar-suscribir.

Hay algunas formas en que puede integrar Pushpin en tu stack. La configuración más básica es colocar a Pushpin frente a un backend de servicio web típico, donde el backend publica datos directamente en Pushpin. El servicio web en sí podría publicar datos en respuesta a solicitudes entrantes, o podría haber algún tipo de proceso / trabajo en segundo plano que publique datos.

Debido a que Pushpin es un servidor proxy, funciona con la mayoría de los sistemas de administración de API, lo que le permite realizar el desarrollo real de API. Por ejemplo, puede encadenar proxies juntos, colocando el marcador al frente para que su sistema de administración de API no esté sujeto a conexiones de larga duración. Lo que es más importante, Pushpin puede traducir el protocolo WebSocket a HTTP, lo que permite que el sistema de administración de la API opere con los datos traducidos.

Puedes consultar algunas aplicaciones de ejemplo creadas con Pushpin escritas en Python.

Como funciona?

Pushipin se coloca en la ruta de red entre el servidor y cualquier cliente:

Pushpin se comunica con las aplicaciones web de back-end utilizando solicitudes HTTP periódicas de corta duración. Esto permite que las aplicaciones de back-end se escriban en cualquier lenguaje y usen cualquier servidor web. Hay dos puntos principales de integración:

  1. El backend debe manejar peticiones proxy. Para HTTP, cada solicitud entrante se envía al back-end. Para WebSockets, la actividad de cada conexión se traduce en una serie de solicitudes HTTP1 enviadas al back-end. El comportamiento de Pushpin está determinado por la forma en que el programa de fondo responde a estas solicitudes.
  2. El backend debe decirle a Pushpin que envíe (push) los datos. Independientemente de cómo se conecten los clientes, se les pueden enviar datos haciendo una solicitud HTTP POST a la API de control privado de Pushpin (http://localhost:556/publish/ de forma predeterminada). Pushpin inyectará estos datos en cualquier conexión de cliente según sea necesario.

Para ayudar con la integración, hay bibliotecas para muchos lenguajes y backends que puedes ver acá. Pushpin no tiene bibliotecas en el lado del cliente porque es transparente para los clientes.