Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Go dla elektronika
Go dla elektronika
Wird geladen in …3
×

Hier ansehen

1 von 22 Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (20)

Ähnlich wie Gripshort (20)

Anzeige

Weitere von Chris Westin (20)

Aktuellste (20)

Anzeige

Gripshort

  1. 1. Realtime by proxy Justin Karneges justin@fanout.io @jkarneges
  2. 2. About me ● Founder of Fanout.io ● Livefyre, realtime commenting ● Psi IM ● Standards involvements (XSF, IETF) ● Keywords: realtime, network protocols, federation, open standards
  3. 3. Realtime HTTP APIs today ● Long-polling or streaming ● Written “by hand” (for full control) ● Possibly separate from non-realtime parts ● Backed by publish-subscribe ● Specific to vendor/application
  4. 4. Today
  5. 5. Pushpin ● HTTP proxy server with realtime magic ● Mongrel2 and ZeroMQ under the hood ● REST interface for controlling ● On GitHub: https://github.com/fanout/pushpin
  6. 6. Architecture
  7. 7. Address the bottleneck (add proxy nodes, not app nodes)
  8. 8. Generic Realtime Intermediary Protocol (GRIP) ● Open standard ● Flexible enough for developing any API ● Works with any web framework
  9. 9. GRIP flow
  10. 10. GRIP flow
  11. 11. GRIP flow
  12. 12. GRIP flow
  13. 13. GRIP flow
  14. 14. GRIP flow
  15. 15. GRIP flow
  16. 16. GRIP flow
  17. 17. GRIP flow
  18. 18. GRIP instructions Content-Type: application/grip-instruct { } "hold": { "mode": "response", "channels": [ { "name": "mychannel" } ] }, "response": { "body": "{}n" }
  19. 19. GRIP hold modes ● ● response: publish whole HTTP responses stream: specify partial HTTP response, then publish HTTP body fragments
  20. 20. Realtime is no longer “special” ● Any web framework ● Any endpoints ● No need to split realtime/non-realtime ● Existing facilities continue to work within a realtime context (e.g. lovely Django error pages).
  21. 21. Future ● Advanced use-cases, authentication, caching ● More implementations (Nginx? HAProxy?) ● GRIP for Websockets?
  22. 22. Realtime by proxy ● Email: justin@fanout.io ● Twitter: @jkarneges ● Pushpin: https://github.com/fanout/pushpin

×