SlideShare a Scribd company logo
WTF Is Messaging And
                Why You Should Use It?

                          @botanicus
                       RabbitMQ team of
                            VMware
Sunday, 12 June 2011
I slept only 3 hours,
         Club-mate is the
         only thing which
       keeps me goin’ ... but
         I’ll do my best :)

                       Club-mate FTW!
Sunday, 12 June 2011
About Me

                       Ruby & JS contractor

                       RabbitMQ team of VMware

                       London, UK

                       http://twitter.com/botanicus

                       http://blog.101ideas.cz




Sunday, 12 June 2011
What Is Messaging?
                       Sending messages between isolated entities
                       (usually apps, but can be also threads, as in
                       Erlang).

                       Usually through a messaging broker.

                       Asynchronous, suitable for distributed systems.

                       Push, not pull.




Sunday, 12 June 2011
From http://www.j5live.com

Sunday, 12 June 2011
How Can You
                         Benefit?
                        Better design of apps.

                        Scalability.

                        Robustness.




Sunday, 12 June 2011
#1 Better Design,
                Easier Maintainance
              Decoupling -> small, isolated apps.

              Greatly reduces complexity.

              Isolation -> it's easy to rewrite just the
              critical parts into Java or C.

              Simple integration with legacy systems, no
              need to rewrite everything.

              It's dead-easy to inspect what's going through.


Sunday, 12 June 2011
Sunday, 12 June 2011
#2 Scalability

                       Improve responsiveness by doing
                       CPU-intensive tasks later in an
                       asynchronous manner.

                       Scale only the parts which requires it.




Sunday, 12 June 2011
Sunday, 12 June 2011
Sunday, 12 June 2011
#3 Robustness

                       Backend deployment with no
                       downtime (see the schema).

                       Message persistency.

                       Acknowledgements (I've done it,
                       send me the next task).



Sunday, 12 June 2011
What if the service would go offline?




Sunday, 12 June 2011
Sunday, 12 June 2011
Pub/Sub
                       Publishers do not send messages to
                       specific subscribers. Published
                       messages are characterised into
                       classes, without knowledge of the
                       subscribers. Subscribers express
                       interest in some classes, and only
                       receive messages they want.



Sunday, 12 June 2011
Sunday, 12 June 2011
Other Use-Cases


                       From a browser utilising websockets
                       (games development etc).

                       Remote procedure call.




Sunday, 12 June 2011
#1 AMQP in BBC

                       Realtime Tweets Processing.

                       As middlewares (download, process,
                       store to S3).

                       1000 tweets/sec = about 90 million a
                       day.



Sunday, 12 June 2011
Protocols & APIs
                       AMQP

                       STOMP: HTTP-like protocol, headers & body,
                       request/response

                       JMS

                       Amazon Simple Queue Service

                       XMPP (well, kind of)

                       Websockets


Sunday, 12 June 2011
AMQP

                Invented by JP Morgan.

                Most widely used.

                Binary protocol with minimal overhead.

                http://www.rabbitmq.com/getstarted.html



Sunday, 12 June 2011
Sunday, 12 June 2011
RabbitMQ


                       AMQP natively, STOMP, XMPP by plugins.

                       Most widely used OSS AMQP broker.

                       A lot of plugins available, writing new
                       ones is quite easy (Erlang).




Sunday, 12 June 2011
ZeroMQ


                       Brokerless, provides socket-like API.

                       Supports advanced routing.

                       Leads to decentralised architecture.




Sunday, 12 June 2011
Sunday, 12 June 2011
Questions please!




Sunday, 12 June 2011
Cheers for your
                         attention!



Sunday, 12 June 2011

More Related Content

ZIP
Message Queues in Ruby - An Overview
KEY
Europycon2011: Implementing distributed application using ZeroMQ
PDF
Coimbra rb | microservic'ing and sinatra
PDF
Martin sustrik future_of_messaging
PDF
BASE: An Acid Alternative
KEY
Simple Web Services With Sinatra and Heroku
KEY
Ruby and Sinatra's Shotgun Wedding
PDF
Swing when you're winning - an introduction to Ruby and Sinatra
Message Queues in Ruby - An Overview
Europycon2011: Implementing distributed application using ZeroMQ
Coimbra rb | microservic'ing and sinatra
Martin sustrik future_of_messaging
BASE: An Acid Alternative
Simple Web Services With Sinatra and Heroku
Ruby and Sinatra's Shotgun Wedding
Swing when you're winning - an introduction to Ruby and Sinatra

Viewers also liked (6)

PPT
10mentalbarrierstoletgoof 12861929353381 Phpapp01
PDF
Lightweight Webservices with Sinatra and RestClient
PPTX
ZeroMQ: Super Sockets - by J2 Labs
PDF
ZeroMQ Is The Answer
PDF
Using Sinatra to Build REST APIs in Ruby
ODP
Overview of ZeroMQ
10mentalbarrierstoletgoof 12861929353381 Phpapp01
Lightweight Webservices with Sinatra and RestClient
ZeroMQ: Super Sockets - by J2 Labs
ZeroMQ Is The Answer
Using Sinatra to Build REST APIs in Ruby
Overview of ZeroMQ
Ad

Similar to WTF Is Messaging And Why You Should Use It? (20)

PPTX
Scalable Persistent Message Brokering with WSO2 Message Broker
PDF
Message Queues : A Primer - International PHP Conference Fall 2012
PDF
Achieving Scale With Messaging And The Cloud 20090709
PDF
Lindsay distributed geventzmq
PDF
Achieving Scale With Messaging And The Cloud
PPT
Rabbit MQ introduction
PDF
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
PDF
Messaging with RabbitMQ and AMQP
PDF
RabbitMQ with python and ruby RuPy 2009
ODP
Are you weak in the middle?
PDF
Enterprise messaging
PDF
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
PPTX
Enterprise messaging with jms
PPTX
Synchronous and asynchronous software communication components
PDF
Scaling webappswithrabbitmq
PDF
The Future of Messaging: RabbitMQ and AMQP
PDF
Messaging in the Cloud - AMQP, RabbitMQ and Spring
PDF
Enterprise Messaging with RabbitMQ.pdf
PDF
Http Push
ODP
The Art of Message Queues - TEKX
Scalable Persistent Message Brokering with WSO2 Message Broker
Message Queues : A Primer - International PHP Conference Fall 2012
Achieving Scale With Messaging And The Cloud 20090709
Lindsay distributed geventzmq
Achieving Scale With Messaging And The Cloud
Rabbit MQ introduction
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Messaging with RabbitMQ and AMQP
RabbitMQ with python and ruby RuPy 2009
Are you weak in the middle?
Enterprise messaging
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Enterprise messaging with jms
Synchronous and asynchronous software communication components
Scaling webappswithrabbitmq
The Future of Messaging: RabbitMQ and AMQP
Messaging in the Cloud - AMQP, RabbitMQ and Spring
Enterprise Messaging with RabbitMQ.pdf
Http Push
The Art of Message Queues - TEKX
Ad

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Approach and Philosophy of On baking technology
PDF
Electronic commerce courselecture one. Pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
A Presentation on Artificial Intelligence
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectral efficient network and resource selection model in 5G networks
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25-Week II
Approach and Philosophy of On baking technology
Electronic commerce courselecture one. Pdf
Chapter 3 Spatial Domain Image Processing.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
sap open course for s4hana steps from ECC to s4
Assigned Numbers - 2025 - Bluetooth® Document
A Presentation on Artificial Intelligence
The Rise and Fall of 3GPP – Time for a Sabbatical?

WTF Is Messaging And Why You Should Use It?

  • 1. WTF Is Messaging And Why You Should Use It? @botanicus RabbitMQ team of VMware Sunday, 12 June 2011
  • 2. I slept only 3 hours, Club-mate is the only thing which keeps me goin’ ... but I’ll do my best :) Club-mate FTW! Sunday, 12 June 2011
  • 3. About Me Ruby & JS contractor RabbitMQ team of VMware London, UK http://twitter.com/botanicus http://blog.101ideas.cz Sunday, 12 June 2011
  • 4. What Is Messaging? Sending messages between isolated entities (usually apps, but can be also threads, as in Erlang). Usually through a messaging broker. Asynchronous, suitable for distributed systems. Push, not pull. Sunday, 12 June 2011
  • 6. How Can You Benefit? Better design of apps. Scalability. Robustness. Sunday, 12 June 2011
  • 7. #1 Better Design, Easier Maintainance Decoupling -> small, isolated apps. Greatly reduces complexity. Isolation -> it's easy to rewrite just the critical parts into Java or C. Simple integration with legacy systems, no need to rewrite everything. It's dead-easy to inspect what's going through. Sunday, 12 June 2011
  • 9. #2 Scalability Improve responsiveness by doing CPU-intensive tasks later in an asynchronous manner. Scale only the parts which requires it. Sunday, 12 June 2011
  • 12. #3 Robustness Backend deployment with no downtime (see the schema). Message persistency. Acknowledgements (I've done it, send me the next task). Sunday, 12 June 2011
  • 13. What if the service would go offline? Sunday, 12 June 2011
  • 15. Pub/Sub Publishers do not send messages to specific subscribers. Published messages are characterised into classes, without knowledge of the subscribers. Subscribers express interest in some classes, and only receive messages they want. Sunday, 12 June 2011
  • 17. Other Use-Cases From a browser utilising websockets (games development etc). Remote procedure call. Sunday, 12 June 2011
  • 18. #1 AMQP in BBC Realtime Tweets Processing. As middlewares (download, process, store to S3). 1000 tweets/sec = about 90 million a day. Sunday, 12 June 2011
  • 19. Protocols & APIs AMQP STOMP: HTTP-like protocol, headers & body, request/response JMS Amazon Simple Queue Service XMPP (well, kind of) Websockets Sunday, 12 June 2011
  • 20. AMQP Invented by JP Morgan. Most widely used. Binary protocol with minimal overhead. http://www.rabbitmq.com/getstarted.html Sunday, 12 June 2011
  • 22. RabbitMQ AMQP natively, STOMP, XMPP by plugins. Most widely used OSS AMQP broker. A lot of plugins available, writing new ones is quite easy (Erlang). Sunday, 12 June 2011
  • 23. ZeroMQ Brokerless, provides socket-like API. Supports advanced routing. Leads to decentralised architecture. Sunday, 12 June 2011
  • 26. Cheers for your attention! Sunday, 12 June 2011

Editor's Notes