Erlang/OTP Forums

Author Message

<  RabbitMQ mailing list  ~  AMPQ vs XMPP and RabbitMQ vs ejabberd

Guest
Posted: Sun Jun 01, 2008 4:00 pm Reply with quote
Guest
Hi,
alexis
Posted: Sun Jun 01, 2008 4:18 pm Reply with quote
User Joined: 06 Sep 2007 Posts: 80 Location: London
Mark

This excellent blog post by Steve Jenson goes some way to addressing
your question.

http://saladwithsteve.com/2007/08/future-is-messaging.html

AMQP is aimed at Business Messaging which means delivery semantics can
be much more specific ("at least once", "exactly once", "publish to
these subscribers only", "persist", "be durable"). This means that,
as Steve points out, the notion of 'presence' is replaced by the more
general notion of a subscription. AMQP's model has routing exchanges
and queues which can be composed into pretty much any messaging
scenario. Finally, AMQP is a binary protocol whereas XMPP is XML.

All these characteristics make AMQP more fundamental in some sense.
Really, it complements XMPP which is good at Instant Messaging. The
great thing about this is that large Instant Messaging infrastructures
exist and are used by lots of people. AMQP will be very good for
cases where human-human messaging is only a part of the solution - for
example business integration and reactive event monitoring.

In terms of license and quality differences between ejabberd and
RabbitMQ - well they are both open source. RabbitMQ is MPL 1.1 and
(iirc) ejabberd is GPL. I think that because AMQP is more general and
comprehensive than XMPP, it is arguably more 'extensible', and hence
so is RabbitMQ, but you may find it easier to locate XMPP tools as it
has been around for longer. RabbitMQ is a high quality implementation
whose users often report happiness with its stability. That said,
ejabberd has been around even longer and its scalability and
manageability, is why we chose erlang for RabbitMQ Smile

If you wish to choose between ejabberd or RabbitMQ, then ask yourself
if you are solving an XMPP type of problem or an AMQP type of problem.
Many solutions could quite happily use both. For example:
http://blog.folknology.com/2008/05/31/reactored-my-packet-based-future-finally-emerges/

Cheers,

alexis




On Sun, Jun 1, 2008 at 4:59 PM, mark peleus <mark.peleus@gmail.com> wrote:
> Hi,
>
> Can anyone please explain the differences between AMPQ and XMPP.
> Are both addressing the same problems?
>
> What are the differences between RabbitMQ and ejabberd?
> Both are written in erlang.
> Is the only difference is the protocol they support or are there more
> differences in quality, extensibility, license...?
>
> Thanks
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss@lists.rabbitmq.com
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
>



--
Alexis Richardson
+44 20 7617 7339 (UK)
+44 77 9865 2911 (cell)
+1 650 206 2517 (US)

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post received from mailinglist
View user's profile Send private message Yahoo Messenger
Guest
Posted: Sun Jun 01, 2008 4:33 pm Reply with quote
Guest
Alexis

Thank you for your detailed answer.
alexis
Posted: Sun Jun 01, 2008 4:49 pm Reply with quote
User Joined: 06 Sep 2007 Posts: 80 Location: London
Mark

On Sun, Jun 1, 2008 at 5:33 PM, mark peleus <mark.peleus@gmail.com> wrote:
> Alexis
> Thank you for your detailed answer.

Thank you for your interesting and timely question.


> Isn't pubsub implementation in ejabberd + a custom client can address:

Um, yes up to a point. You *could* do pub-sub over many types of
intermediary tech. For example Twitter does a form of pubsub in a
way that appears to critically involve a database tier. The
consquences of that decision are currently a debating point in the
community...

XMPP was not designed to do pubsub, it was designed to broadcast IMs
and presence. This is why the XEP extensions have been proposed.
Those are new, and implemented in afaik one ejabberd implementation.
For all I know they are implemented really well - to be clear: I
*don't know*.

That said, a useful question to ask is - for which pubsub scenarios,
possibly involving ordering, queues, delivery guarantees, and
availability or reliability guarantees, is AMQP a better tool than
XMPP+XEP?


>> AMQP is aimed at Business Messaging which means delivery semantics can
>> be much more specific ("at least once", "exactly once", "publish to
>> these subscribers only", "persist", "be durable")

BTW implementing these semantics in a system that scales and is stable
and manageable, is really not trivial Smile


> Does binary streams have any other advantage over xml other then smaller
> size?

Parsing speed, and embeddability, are similar benefits of binary over XML.

The notion of a *stream* is orthogonal and brings with it the notion
of conversational durability. There are some similarities between
AMQP and SCTP, and bittorrent, in this regard.


> Is AMQP suitable for streaming video and audio?

Yes we have a demo on the RabbitMQ site.

But to get carrier grade video streaming you'd want AMQP with smaller headers.


> Can AMQP has something like http-bind (BOSH) implemented, letting web
> clients interact with the server.

There is a RabbitMQ client for HTTP and "AJAX" style coding.

We would like more natural HTTP bindings - would you like to help?


> I've read the post about Reactor but didn't understand much.
> Any news about that?

Well, I have cc'd the author...

Cheers,

alexis


> Mark
>
>
>
>
> On Sun, Jun 1, 2008 at 7:17 PM, Alexis Richardson
> <alexis.richardson@cohesiveft.com> wrote:
>>
>> Mark
>>
>> This excellent blog post by Steve Jenson goes some way to addressing
>> your question.
>>
>> http://saladwithsteve.com/2007/08/future-is-messaging.html
>>
>> AMQP is aimed at Business Messaging which means delivery semantics can
>> be much more specific ("at least once", "exactly once", "publish to
>> these subscribers only", "persist", "be durable"). This means that,
>> as Steve points out, the notion of 'presence' is replaced by the more
>> general notion of a subscription. AMQP's model has routing exchanges
>> and queues which can be composed into pretty much any messaging
>> scenario. Finally, AMQP is a binary protocol whereas XMPP is XML.
>>
>> All these characteristics make AMQP more fundamental in some sense.
>> Really, it complements XMPP which is good at Instant Messaging. The
>> great thing about this is that large Instant Messaging infrastructures
>> exist and are used by lots of people. AMQP will be very good for
>> cases where human-human messaging is only a part of the solution - for
>> example business integration and reactive event monitoring.
>>
>> In terms of license and quality differences between ejabberd and
>> RabbitMQ - well they are both open source. RabbitMQ is MPL 1.1 and
>> (iirc) ejabberd is GPL. I think that because AMQP is more general and
>> comprehensive than XMPP, it is arguably more 'extensible', and hence
>> so is RabbitMQ, but you may find it easier to locate XMPP tools as it
>> has been around for longer. RabbitMQ is a high quality implementation
>> whose users often report happiness with its stability. That said,
>> ejabberd has been around even longer and its scalability and
>> manageability, is why we chose erlang for RabbitMQ Smile
>>
>> If you wish to choose between ejabberd or RabbitMQ, then ask yourself
>> if you are solving an XMPP type of problem or an AMQP type of problem.
>> Many solutions could quite happily use both. For example:
>>
>> http://blog.folknology.com/2008/05/31/reactored-my-packet-based-future-finally-emerges/
>>
>> Cheers,
>>
>> alexis
>>
>>
>>
>>
>> On Sun, Jun 1, 2008 at 4:59 PM, mark peleus <mark.peleus@gmail.com> wrote:
>> > Hi,
>> >
>> > Can anyone please explain the differences between AMPQ and XMPP.
>> > Are both addressing the same problems?
>> >
>> > What are the differences between RabbitMQ and ejabberd?
>> > Both are written in erlang.
>> > Is the only difference is the protocol they support or are there more
>> > differences in quality, extensibility, license...?
>> >
>> > Thanks
>> >
>> > _______________________________________________
>> > rabbitmq-discuss mailing list
>> > rabbitmq-discuss@lists.rabbitmq.com
>> > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>> >
>> >
>>
>>
>>
>> --
>> Alexis Richardson
>> +44 20 7617 7339 (UK)
>> +44 77 9865 2911 (cell)
>> +1 650 206 2517 (US)
>
>



--
Alexis Richardson
+44 20 7617 7339 (UK)
+44 77 9865 2911 (cell)
+1 650 206 2517 (US)

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post received from mailinglist
View user's profile Send private message Yahoo Messenger

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum