Push is hard. Often, implementing realtime push in a website or other service means having to use unfamiliar software or frameworks. If it isn’t an XMPP server with BOSH, then it’s an esoteric HTTP server like Node.js or Tornado. Further, while the knowledge and tools necessary for load balancing a traditional web service are commonly found these days, scaling out and operating a push architecture is less straightforward. The interactions between server nodes are different. The traffic patterns are different. Even if you’ve got a handle on whatever particular approach for push you’re using today, do you know how you’ll scale it tomorrow?
Fanout is a new cloud service that makes implementing realtime push a heck of a lot easier. Simply use the Fanout API to publish messages to interested subscribers and let the Fanout cloud handle the complexity of maintaining client connections, pushing messages, and all operational and scaling concerns. What makes Fanout different from similar solutions is that it supports pushing data over a variety of transports, and it allows you to do so in a format-agnostic fashion. Below is a list of the supported transports and the payload customizability of each:
- HTTP long-polling: accept any kind of request, and you specify the response code, status, headers, and body.
- HTTP streaming: accept any kind of request, and you specify the initial response code, status, headers, and then a series of body payloads to be appended.
- XMPP stanzas: you specify the entire XML stanza.
- Webhooks: you specify the HTTP verb, path, headers, and optional body. Any HTTP response is ignored.
This kind of transport versatility is one of our founding principles. Fanout does not expose a proprietary protocol to those who consume the service unless you want it to. It can be made to expose your protocol. Or a standard protocol. Want to transmit Atom? JSON Activity Streams? How about some raw binary? All are possible. This versatility means you can migrate any existing service to Fanout, without third party consumers even noticing you made the switch. It also means that if you’re not satisfied with the Fanout service, you can migrate away. It’s your protocol, after all. No vendor lock-in here!
Fanout is currently in private beta, and free for low volume users who sign up early. If you are building a website, REST API, app, or other service, and are interested in learning more about how Fanout could bring joy to your life, let us know at firstname.lastname@example.org and be sure to visit our homepage and sign up for the beta.