SlideShare a Scribd company logo
Multiply Like Rabbits with
RabbitMQ
WHO AM I?
• Luis Majano
• Born in El Salvador ------------------>
• Architecture + Software Design
• CEO of Ortus Solutions
• Adobe Community Professional
• Creator of all things Box: 

ColdBox, ContentBox, CommandBox....
AGENDA
• Traditional RPC Calls
• What is Messaging all about
• Different Implementations
• AMQP Protocol
• RabbitMQ
• Demo
TRADITIONAL RPC STYLE CALLS
Obj Obj
Obj
Multiply like rabbits with rabbit mq
• Blocks Requests
• Asynchronous, partial solution, still 1-1 relationship
• Sender always knows about receiver
• Receiver knows about sender
PROBLEMS WITH RPC
How can we decouple knowledge?
How can we apply messaging patterns to our apps?
Messaging (EMB)
Producer
Consumer Consumer Consumer
Messaging Bus - Broker
Can be
any system or
language
Can be
any system or
language
Doesn’t
care about
consumers
Asynchronous
Does not get a
response
• Producers lack knowledge -> Decouple
• Cross platforms-technologies -> Flexibility
• Event Driven Programming -> Scalability
• Queueing for later delivery
• Asynchronous
• Load balancing
• Hulkyfied services
Usages and Patterns
Direct Messaging
Work Queues
Publish/Subscribe
Topics/Routing
Protocols
JMS AMQP STOMP
AMQP - www.amqp.org
• Advanced Message Queuing Protocol
• != JMS
• Standard binary protocol
• Exchanges
• Queuing
• Routing
• Reliable
• Secure
• Several Implementations
RabbitMQ
ActiveMQ
Qpid
StormMQ
AMQP Messaging Broker
Erlang
Extremely fast, reliable and secure
Languages: c#, erlang, java, python, ruby, node, etc
Accepts and forwards messages
Its like a post box, post office and postman
HOW IT WORKS?
Producer
Message
(Body+Routing Key)
Exchange (Bindings via Routing Key)
Body = binary, json,
anything
stock.

prices
stock.

run
log.

error
cluster
Queues are bound to exchanges with patterns
Routing key =
Bindings
Queues
• Direct
• Routing key = queue name
• No mapping or extra fluff just a passthrough
• Similar to JMS
• Topic
• Binding pattern (routing key) is match against the queue name
• Not full regex
• Ex: log.*, log#
• Not like JMSTopics, forget JMS, this is not JMS
• Fanout + More
EXCHANGETYPES
LOAD BALANCING + ACK
Worker
Queue
Consumer
Consumer
Consumer
Messages are
round-robin
to each
consumer
Consumer
need to ack
DEMOTIME
• Java Producer
• Java Consumer
• CFML Consumer
• NodeJS Consumer
• JavaScript Consumer
• CFML Producer
Q & A
• RabbitMQ In Action Book
• http://www.rabbitmq.com
• http://tryrabbitmq.com/
• https://github.com/RabbitMQSimulator/RabbitMQSimulator
• http://koo.fi/blog/2013/02/18/web-messaging-with-rabbitmq-web-stomp-and-
sockjs/
• https://github.com/robharrop/presentations.git

More Related Content

PDF
Enterprise messaging
PPTX
Tomas Urbonaitis "Introduction to asynchronous persistent messaging with NSer...
ODP
Tools to create a secure build pipeline
PPT
Client server
ODP
Distributed Systems
PPTX
Lesson1 intro
PDF
EUC2015 - Load testing XMPP servers with Plain Old Erlang
KEY
Zero mq logs
Enterprise messaging
Tomas Urbonaitis "Introduction to asynchronous persistent messaging with NSer...
Tools to create a secure build pipeline
Client server
Distributed Systems
Lesson1 intro
EUC2015 - Load testing XMPP servers with Plain Old Erlang
Zero mq logs

What's hot (17)

PPTX
Making Symfony Services async with RabbitMq (and more Symfony)
PDF
A Quick Tour of JVM Languages
PPT
easyM2R
PDF
Porting 100k Lines of Code to TypeScript
PDF
MPI, Erlang and the web
PPTX
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
KEY
CPAN Gems From The Far East
PDF
Why JVM will outlive java?
PDF
High-Performance Computing with C++
PDF
From silex to symfony and viceversa
PDF
Stream Processing Metamorphosis - A Kafka's tale
PDF
History of programming languages
PDF
AtomPub, beyond blogs
PPTX
Cfthread Presentation
PPTX
haXe - One codebase to rule'em all
PDF
Distributing OSGi
PPTX
Serve like a boss (part one)
Making Symfony Services async with RabbitMq (and more Symfony)
A Quick Tour of JVM Languages
easyM2R
Porting 100k Lines of Code to TypeScript
MPI, Erlang and the web
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
CPAN Gems From The Far East
Why JVM will outlive java?
High-Performance Computing with C++
From silex to symfony and viceversa
Stream Processing Metamorphosis - A Kafka's tale
History of programming languages
AtomPub, beyond blogs
Cfthread Presentation
haXe - One codebase to rule'em all
Distributing OSGi
Serve like a boss (part one)
Ad

Similar to Multiply like rabbits with rabbit mq (20)

PDF
CBDW2014 - Down the RabbitMQ hole with ColdFusion
PDF
Multi-platform Enterprise Messaging with RabbitMQ
PDF
Enterprise Messaging with RabbitMQ.pdf
PDF
Decouple and scale with enterprise messaging
PDF
Messaging with RabbitMQ and AMQP
PPTX
Rabbits, indians and... Symfony meets queueing brokers
KEY
Real time system_performance_mon
KEY
Messaging, interoperability and log aggregation - a new framework
KEY
High scale flavour
PDF
The Future of Messaging: RabbitMQ and AMQP
PDF
PDF
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
PPTX
Modern Distributed Messaging and RPC
PDF
ITB2024 - Keynote Day 1 - Ortus Solutions.pdf
PDF
Messaging for IoT
PDF
Adding Real-time Features to PHP Applications
PDF
Scaling with Symfony - PHP UK
PDF
Multi-language/multi-OS communication using RabbitMQ
PDF
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
PPTX
2018 12-kube con-ballerinacon
CBDW2014 - Down the RabbitMQ hole with ColdFusion
Multi-platform Enterprise Messaging with RabbitMQ
Enterprise Messaging with RabbitMQ.pdf
Decouple and scale with enterprise messaging
Messaging with RabbitMQ and AMQP
Rabbits, indians and... Symfony meets queueing brokers
Real time system_performance_mon
Messaging, interoperability and log aggregation - a new framework
High scale flavour
The Future of Messaging: RabbitMQ and AMQP
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Modern Distributed Messaging and RPC
ITB2024 - Keynote Day 1 - Ortus Solutions.pdf
Messaging for IoT
Adding Real-time Features to PHP Applications
Scaling with Symfony - PHP UK
Multi-language/multi-OS communication using RabbitMQ
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
2018 12-kube con-ballerinacon
Ad

More from ColdFusionConference (20)

PDF
Api manager preconference
PDF
PDF
Building better SQL Server Databases
PDF
API Economy, Realizing the Business Value of APIs
PDF
Don't just pdf, Smart PDF
PDF
Crafting ColdFusion Applications like an Architect
PDF
Security And Access Control For APIS using CF API Manager
PDF
Monetizing Business Models: ColdFusion and APIS
PDF
Become a Security Rockstar with ColdFusion 2016
PDF
ColdFusion in Transit action
PDF
Developer Insights for Application Upgrade to ColdFusion 2016
PDF
Where is cold fusion headed
PDF
ColdFusion Keynote: Building the Agile Web Since 1995
PDF
Instant ColdFusion with Vagrant
PPT
Restful services with ColdFusion
PDF
Super Fast Application development with Mura CMS
PDF
Build your own secure and real-time dashboard for mobile and web
PDF
Why Everyone else writes bad code
PDF
Securing applications
PDF
Testing automaton
Api manager preconference
Building better SQL Server Databases
API Economy, Realizing the Business Value of APIs
Don't just pdf, Smart PDF
Crafting ColdFusion Applications like an Architect
Security And Access Control For APIS using CF API Manager
Monetizing Business Models: ColdFusion and APIS
Become a Security Rockstar with ColdFusion 2016
ColdFusion in Transit action
Developer Insights for Application Upgrade to ColdFusion 2016
Where is cold fusion headed
ColdFusion Keynote: Building the Agile Web Since 1995
Instant ColdFusion with Vagrant
Restful services with ColdFusion
Super Fast Application development with Mura CMS
Build your own secure and real-time dashboard for mobile and web
Why Everyone else writes bad code
Securing applications
Testing automaton

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
Approach and Philosophy of On baking technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
sap open course for s4hana steps from ECC to s4
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
The AUB Centre for AI in Media Proposal.docx
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation_ Review paper, used for researhc scholars
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Approach and Philosophy of On baking technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectroscopy.pptx food analysis technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Multiply like rabbits with rabbit mq

  • 1. Multiply Like Rabbits with RabbitMQ
  • 2. WHO AM I? • Luis Majano • Born in El Salvador ------------------> • Architecture + Software Design • CEO of Ortus Solutions • Adobe Community Professional • Creator of all things Box: 
 ColdBox, ContentBox, CommandBox....
  • 3. AGENDA • Traditional RPC Calls • What is Messaging all about • Different Implementations • AMQP Protocol • RabbitMQ • Demo
  • 4. TRADITIONAL RPC STYLE CALLS Obj Obj Obj
  • 6. • Blocks Requests • Asynchronous, partial solution, still 1-1 relationship • Sender always knows about receiver • Receiver knows about sender PROBLEMS WITH RPC How can we decouple knowledge? How can we apply messaging patterns to our apps?
  • 7. Messaging (EMB) Producer Consumer Consumer Consumer Messaging Bus - Broker Can be any system or language Can be any system or language Doesn’t care about consumers Asynchronous Does not get a response
  • 8. • Producers lack knowledge -> Decouple • Cross platforms-technologies -> Flexibility • Event Driven Programming -> Scalability • Queueing for later delivery • Asynchronous • Load balancing • Hulkyfied services
  • 15. AMQP - www.amqp.org • Advanced Message Queuing Protocol • != JMS • Standard binary protocol • Exchanges • Queuing • Routing • Reliable • Secure • Several Implementations RabbitMQ ActiveMQ Qpid StormMQ
  • 16. AMQP Messaging Broker Erlang Extremely fast, reliable and secure Languages: c#, erlang, java, python, ruby, node, etc Accepts and forwards messages Its like a post box, post office and postman
  • 17. HOW IT WORKS? Producer Message (Body+Routing Key) Exchange (Bindings via Routing Key) Body = binary, json, anything stock.
 prices stock.
 run log.
 error cluster Queues are bound to exchanges with patterns Routing key = Bindings Queues
  • 18. • Direct • Routing key = queue name • No mapping or extra fluff just a passthrough • Similar to JMS • Topic • Binding pattern (routing key) is match against the queue name • Not full regex • Ex: log.*, log# • Not like JMSTopics, forget JMS, this is not JMS • Fanout + More EXCHANGETYPES
  • 19. LOAD BALANCING + ACK Worker Queue Consumer Consumer Consumer Messages are round-robin to each consumer Consumer need to ack
  • 20. DEMOTIME • Java Producer • Java Consumer • CFML Consumer • NodeJS Consumer • JavaScript Consumer • CFML Producer
  • 21. Q & A • RabbitMQ In Action Book • http://www.rabbitmq.com • http://tryrabbitmq.com/ • https://github.com/RabbitMQSimulator/RabbitMQSimulator • http://koo.fi/blog/2013/02/18/web-messaging-with-rabbitmq-web-stomp-and- sockjs/ • https://github.com/robharrop/presentations.git