Pushpin – Push für meine API aktivieren
(pushpin.org)- Ein Proxy-Server, der Client-Verbindungen aufrechterhält und sich leicht mit jeder Sprache und jedem Framework integrieren lässt
- Macht es einfach, Echtzeit-API-Endpunkte zu erstellen
- Unterstützt HTTP-Streaming/Long Polling und WebSockets
- Kann völlig transparent für Clients genutzt werden
- Echtzeit-Endpunkte können mit API-Management-Tools wie KONG und 3SCALE verwaltet werden
- Geschrieben in Rust & C++
5 Kommentare
Ich habe es ein paar Monate lang ausprobiert.
In Umgebungen wie PHP, in denen Echtzeitverarbeitung schwierig ist, habe ich den großen Vorteil deutlich gespürt. Allein der Umstand, dass man keinen separaten Echtzeit-Server schreiben muss, ist schon ziemlich attraktiv.
Besonders in gewöhnlichen PHP-Projekten konnte ich mich etwas stärker auf die Business-Logik konzentrieren, weil man für die Authentifizierung von Echtzeit-Endpunkten ohne komplizierten (nervigen) Datenaustausch einfach nur den autorisierten Nutzern den GRIP-Header übergeben muss.
Anders als bei PHP habe ich in anderen Sprachen, bei denen es kein Problem ist, Requests dauerhaft offenzuhalten, im Vergleich dazu, Echtzeit-Endpunkte direkt selbst zu öffnen und zu nutzen, keinen großen Mehrwert gespürt ...
Im Hinblick auf Authentifizierungsverfahren oder Skalierung halte ich es theoretisch dennoch für eine Lösung mit ziemlich vielen Vorteilen.
... Warum ich allerdings den Zusatz „theoretisch“ verwende: Die Lösung selbst ist etwas instabil. Vor allem der Proxy-Server, der wohl ohne Übertreibung der wichtigste Teil dieser Lösung ist, ist ziemlich instabil.
Ich habe nicht gezielt nach Bugs gesucht, aber in meinem Setup war es so, dass nach einem eingehenden POST-Request alle darauffolgenden Requests für eine Weile komplett ausfielen.
Ich habe das gelöst (???), indem ich noch einen zusätzlichen Proxy-Server davorgesetzt habe, der nur GET-Requests — insbesondere dann, wenn der
Accept-Header auf SSE steht — an Pushpin weiterleitet, aber bisher scheint mir das Ganze noch etwas zu früh für den produktiven Einsatz. Eher nur für Toy-Projekte ...Wie auch immer: Für den Einsatz in Produktion gibt es noch viele Probleme, aber die Grundidee ist ziemlich gut — so würde ich es zusammenfassen.
Wow, vielen Dank für die tolle Rezension.
Hm … das wirkt wie Magie, aber ich komme immer noch nicht über die Frage hinweg, wofür man das an eine bestehende normale Web-API anhängen soll … seufz
Da die Anzahl der API-Anfragen immer weiter zunimmt, hatte ich mir darüber ein wenig Gedanken gemacht – so ein Programm auszuprobieren, wäre also auch eine Möglichkeit. +_+
Der Name kam mir bekannt vor, und tatsächlich ist er derselbe wie bei PushPin - Local-first Echtzeit-Kollaborationstool.
Aber es handelt sich um eine völlig andere Lösung.
Auch im Thoughtworks Technology Radar, Volume 29 wurde es im Bereich Frameworks als eine Technologie ausgewählt, die man im Trial ausprobieren sollte.