• Component of « MOM », Message Oriented Middleware
• An architectural pattern for message validation,
transformation and routing.
• Mediate communication amongst applications,
minimizing the mutual awareness that application should
have of each other, effectively implementing decoupling
Integrate applications without enforcing a common
• Route messages to one or more of many destinations (unicast / multicast)
• Transform messages to an alternative representation (mapping)
• Perform message aggregation, decomposition/recomposition of messages
• Respond to events or errors (“triggering”)
• Provide content and topic-based message routing using the publish–
Characteristics & Features
(multiple or not)
(multiple or not)
Topology (1-1, 1-N, N-N)
Timed or permanent persistence
Disconnect detection, error recovery
Acknowleding, ordering, retries
Combination of features : delivery + ordering : “EOID” exactly once in order
Active MQ, Jboss Messaging, Glassfish
Lightweight / non-standardized
ZeroMQ, Finagle, Kafka, Beanstalkd
IBM Websphere MQ, MSMQ (Microsoft)
BEA Weblogic, SAP Netweaver
Enterprise Service Buses
Biztalk, Websphere, Oracle Service Bus
Some key AMQP messaging protocol requirements
– Internet protocol - like HTTP, TCP –
– Where to send messages (Routing)
– How to get there (Delivery)
– What goes in must come out (Fidelity)
- Each message is stateless
- Consumers create queues; these
buffer messages for push to consumers
- Queues are stateful, ordered, and can
be persistent, transient, private, shared.
- Exchanges are stateless routing
Written in Erlang, a functional language known for its ability for concurrent
processing, and backed by Mnesia, Erlang’s powerful persistence database.
Used by NASA’s Nebula Cloud Computing Platform, VMWare, AT&T
Interactive, Digg, BBC, Nokia and ….
What about SQL Server Service Broker?
SQL Server Service Broker :
- native support for messaging and queuing applications
- use the Sql Server Database Engine components to communicate between
- handles the communication paths in the context of transactioned conversation.
http://msdn.microsoft.com/en-us/library/ms978706.aspx : « broker » pattern
http://blog.pasker.net/2008/06/16/you-might-need-messaging-if/ : why you
might need messaging
AMQP functionnalities in detail
_10xScalabilityAtHalfTheCost.pdf : Rabbit MQ at Unibet, the story of Kevin and his
http://www.codeproject.com/Articles/11795/Introducing-Distributed-Messagingusing-Service-Br : good description of Sql Server Service Broker
Find out more
Betclic Everest Group, one of the world leaders in online gaming, has a unique
portfolio comprising various complementary international brands: Betclic, Everest
Gaming, bet-at-home.com, Expekt…
Active in 100 countries with more than 12 million customers worldwide, the Group is
committed to promoting secure and responsible gaming and is a member of several
international professional associations including the EGBA (European Gaming and
Betting Association) and the ESSA (European Sports Security Association).
Through our brands, Betclic Everest Group places expertise, technological know-how
and security at the heart of our strategy to deliver an on-line gaming offer attuned to
the passion of our players.