Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kuiperbelt - Asynchronous protocol proxy

mackee
November 21, 2015

Kuiperbelt - Asynchronous protocol proxy

mackee

November 21, 2015
Tweet

More Decks by mackee

Other Decks in Programming

Transcript

  1. Who am I ? • twitter: @mackee_w • PAUSE ID:

    MACOPY • github: github.com/mackee • Yokohama.pm Co-mainterner(?)
  2. What’s kuiperbelt? • kuiperbelt is… • WebSocket to HTTP1.x converter

    • proxy, authentication mechanism and connection pooling
  3. Motivation • Prefork(or blocking/synchronous) server has a problem of about

    using websocket protocol. • Problems: • C10k • AnyEvent(Perl)/Eventmachine(Ruby) -> RDB Transaction • shared connection -> sticky session(?)
  4. Conventional solution • Switch to a language that support concurrent

    • code to trash!!! oh!!!! • pray and close eyes • C10k???? my code is not graceful but working now.
  5. OTOH, Realtime application age • Server-side push • realtime paging????

    huh????? • Planner’s imagination is infinite.
  6. other features • server-side closing with message • close callback

    to backend by client- side normally closing • switch binary/text frame
  7. clusters • kuiperbelt is support single host application only. •

    But does not mean there is no way. • Kuiperbelt server host name in header of /connect callback. • If you want to connection mapping to some kuiperbelt host, store this hostname in datastore.
  8. implementation plan • (really) cluster support • Redis Pub/Sub or

    MQTT backbone • DHT and sticky session? • documentation (oh…