20 Responses to “Beyond REST? Building data services with XMPP”

  1. kael says:

    It’s great to see XMPP emerging.

    Have you considered the mapping of Pubsub to AtomPub like with the Ejabberd-AtomPub module ?

    Also, after OAuth over XMPP, there could be OpenID over XMPP with XEP-0070 authentication and even then OpenID interchange over XMPP.

  2. Good stuff. This would be a much better way of solving the polling issue than by introducing an intermediate between providers and consumers, as Gnip is doing. Is the Flickr case study real? Does the XMPP service exist yet, is it under development, or just an idea so far?

  3. Kellan says:

    @kael: I’d like to see someone tease out what the architecture would look like if you were to use the Ejabberd-AtomPub module. Part of what I like about the roll your own component approach is it gets the majority of the logic into something I deeply understand running, scaling, and monitoring as fast as possible.

    @Christoper: so far its just an idea, but I tend to agree with you about intermediaries are sub-optimal, which is a conversation I’ve been having with bpm140 since before they launched :)

  4. joshua says:

    Another interesting solution would be callbacks — this was what I wanted to do for delicious. push a single URL up to the service, occasionally, and then get RSS individual item fragments POST’d back to you.

    Something like del.icio.us/subscribe?resource=/joshua&callback=http://my.webapp/endpoint or similar.

    I even came up with a witty acronym for it.

    This is probably an easier solution for people who are interested in only a very small subset of updates, like if I wanted to have updates for my account get pushed to my blog.

  5. Kellan says:

    HTTP callbacks gets you something similar.

    Personally, I don’t like the performance characteristics of HTTP callbacks as the service provider, and but for the “quantum” end of the scale web hooks work great. Not so much for the relativistic scales. (unless you’re running non-stock Web servers)

    I think we’ll see XMPP-to-HTTP-callback proxies, I just don’t want to run them :)

  6. joshua says:

    Indeed – for big service to big service, XMPP firehose is the only way to go. But callbacks are better for most everything smaller than that, I think.

  7. Emil Hesslow says:

    Nice slides, wish I could have heard the talk.

    I’m going to college in Sweden and right now I’m doing my Masters thesis and I’m looking into how to use XMPP as public API for a Swedish company. And how I designed it is exactly the same as yours (except the OAuth part which I’ll probably add).

    Really nice to see that someone else is having the same ideas.

  8. [...] Beyond REST? Building data services with XMPP. Pretty fascinating stuff. [...]

  9. Marc Brooks says:

    GNIP implements HTTP callback for most social feeds. http://www.gnipcentral.com/

  10. Kellan says:

    Marc, yup very well aware of Gnip. I’ve been in chatting with Eric about architecture and design of Gnip since December.

  11. Kellan says:

    Emil, neat. When you post something publicly about your work, let me know.

  12. Emil Hesslow says:

    Kellan: Of cause. The final parts of the Masters Thesis is a report and a presentation. But because the report would probably contain a lot of information that nobody care about I have thought about doing a light version of the report. But at least the normal report will be published online.

  13. Antonio says:


    This was the most thought-provoking presentation I’ve seen in a while. I am bummed to have missed OSCON just because of this.

  14. Julien says:

    Kellan, I sent you an email about this presentation and a project that I have… have you received it?

  15. [...] Beyond REST?  Building data services using XMPP [...]

  16. [...] Sam Ruby making it one of his long bets to Evan Henshaw-Plath and Kellan Elliott-Mcrea’s presentation at OSCON last week. What is it about XMPP that’s making it, like Hansel, so hot right now? [...]

  17. [...] feedback on the Beyond REST talk has been immensely gratifying, the overwhelming positive response, and the engaged critiques. [...]

  18. [...] Beyond REST? Building data services with XMPP. Pretty fascinating stuff. (4) PreviousPost NextPost [...]

  19. marcus says:

    the slides are gone :-(