19 Punkte von xguru 2023-10-17 | 5 Kommentare | Auf WhatsApp teilen
  • 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

 
nemorize 2024-02-11

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.

 
xguru 2024-02-13

Wow, vielen Dank für die tolle Rezension.

 
galadbran 2023-10-17

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

 
kuroneko 2023-10-17

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. +_+

 
xguru 2023-10-17

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.