SlideShare a Scribd company logo
Down the RabittMQ Hole with
ColdFusion
WHO AM I?
• Luis Majano - Computer Engineer	

• Born in El Salvador ------------------>	

• Architecture + Software Design	

• CEO of Ortus Solutions	

• Manager of the IECFUG
(www.iecfug.com)	

• Adobe Community Professional	

• Creator of all things Box: 

ColdBox, ContentBox,WireBox....
AGENDA
• RPC Calls	

• What is Messaging	

• Implementations	

• AMQP Protocol	

• RabbitMQ	

• Nice Demo
RPC STYLE CALLS
CFC CFC
CFC
• Blocks Request Usage	

• Even if you do them Asynchronous, messages only 1 receiver	

• Sender always knows about receiver	

• Receiver knows about sender	

• How can we decouple knowledge?	

• How can we apply messaging patterns to our apps?
PROBLEMS WITH RPC
Messaging (EMS)
Producer
Consumer Consumer Consumer
Messaging Bus
Can be
any system or
language
Can be
any system or
language
Doesn’t
care about
consumers
Asynchronous
Does not get a
response
• Producers don’t care about consumers -> Decouple	

• Cross platforms-technologies-OS, you name it -> Flexibility	

• Event Driven Programming -> Scalability	

• Queueing for later delivery	

• Asynchronous	

• Load balancing	

• Hulkyfied services
BENEFITS OF MESSAGING
Usages and Patterns
Work QueuesMessaging
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	

• www.rabbitmq.com	

• Built on erlang like Couchbase NoSQL	

• Extremely fast, reliable and secure	

• Languages: c#, erlang, java, python, ruby, node, cfml	

• Simple concept	

• 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
PUB-SUB EXAMPLE
DEMOTIME
• Java Producer	

• Java Consumer	

• CFML Consumer	

• NodeJS Consumer	

• JavaScript + Stomp 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
Testing Automaton - CFSummit 2016
PDF
Enterprise messaging
PDF
Multiply like rabbits with rabbit mq
PPTX
Functional Programming in PHP
PDF
RESTFul Tools For Lazy Experts - CFSummit 2016
PDF
2021.laravelconf.tw.slides1
PDF
Keep Applications Online
PDF
ColdFusion builder plugins
Testing Automaton - CFSummit 2016
Enterprise messaging
Multiply like rabbits with rabbit mq
Functional Programming in PHP
RESTFul Tools For Lazy Experts - CFSummit 2016
2021.laravelconf.tw.slides1
Keep Applications Online
ColdFusion builder plugins

What's hot (18)

PPTX
What's the "right" PHP Framework?
PDF
Hidden gems in cf2016
PDF
PPTX
ITB2015 - Go Commando with CommandBox CLI
PPTX
They why behind php frameworks
PPTX
Command box, Package Manager, Automation, REPL
PPTX
Tuenti Release Workflow
PPTX
Appache1
PDF
Adding Real-time Features to PHP Applications
PPTX
Proxying DBI with DBD::Gofer and App::Staticperl
PDF
Instant ColdFusion with Vagrant
PPTX
WEPA - Webdriver Enhanced Platform for Automation - WEPATest
PDF
Instant ColdFusion with Vagrant
PPTX
Manage your environment with DSC
PPTX
Bccon use notes objects in memory and other useful
PPTX
Repeating History...On Purpose...with Elixir
PDF
Making CLI app in ruby
PPTX
Peeling back the Lambda layers
What's the "right" PHP Framework?
Hidden gems in cf2016
ITB2015 - Go Commando with CommandBox CLI
They why behind php frameworks
Command box, Package Manager, Automation, REPL
Tuenti Release Workflow
Appache1
Adding Real-time Features to PHP Applications
Proxying DBI with DBD::Gofer and App::Staticperl
Instant ColdFusion with Vagrant
WEPA - Webdriver Enhanced Platform for Automation - WEPATest
Instant ColdFusion with Vagrant
Manage your environment with DSC
Bccon use notes objects in memory and other useful
Repeating History...On Purpose...with Elixir
Making CLI app in ruby
Peeling back the Lambda layers
Ad

Viewers also liked (20)

PDF
ITB2016 best practices are best except when they are not
PPTX
Michael Jackson
PDF
ITB2016 Web Applications can control the world
PDF
ITB2015 - Behavior Driven Development, Automation and Continuous Integration
PPTX
Seminar ppt
PPTX
Олі Мельник
PPTX
Кожна дитина має право
PDF
ITB2016 -BDD testing and automation from the trenches
PPTX
Storyboard (day 1 of filming)
PDF
CBDW2014 - Railo 5.0 and Beyond
DOCX
PPT
Customer service director
PPT
Breaking wifi-faster
PPTX
ARS MARKETING _ PROFILE
PPTX
Center for Education on Social Responsibility (CESR) Introduction
PPTX
Story book evaluation
PPT
forces
PPTX
REDES SOCIALES
PPTX
Costumes
PDF
ITB2016 - ContentBox Modular CMS
ITB2016 best practices are best except when they are not
Michael Jackson
ITB2016 Web Applications can control the world
ITB2015 - Behavior Driven Development, Automation and Continuous Integration
Seminar ppt
Олі Мельник
Кожна дитина має право
ITB2016 -BDD testing and automation from the trenches
Storyboard (day 1 of filming)
CBDW2014 - Railo 5.0 and Beyond
Customer service director
Breaking wifi-faster
ARS MARKETING _ PROFILE
Center for Education on Social Responsibility (CESR) Introduction
Story book evaluation
forces
REDES SOCIALES
Costumes
ITB2016 - ContentBox Modular CMS
Ad

Similar to CBDW2014 - Down the RabbitMQ hole with ColdFusion (20)

PDF
Multiply like rabbits with rabbit mq
PDF
Enterprise Messaging with RabbitMQ.pdf
PDF
Messaging Standards and Systems - AMQP & RabbitMQ
PDF
Messaging Standards and Systems - AMQP & RabbitMQ
PDF
Multi-platform Enterprise Messaging with RabbitMQ
PPTX
High powered messaging with RabbitMQ
PDF
PDF
Messaging with RabbitMQ and AMQP
PDF
The Future of Messaging: RabbitMQ and AMQP
PDF
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
PDF
Messaging with amqp and rabbitmq
PDF
AMQP with RabbitMQ
PPTX
The RabbitMQ Message Broker
PDF
Ruby Microservices with RabbitMQ
PPTX
RabbitMQ and AMQP with .net client library
PPTX
Spring RabbitMQ
PPTX
Message Broker System and RabbitMQ
ODP
The Art of Message Queues - TEKX
PPTX
Spring RabbitMQ
PDF
Messaging in the Cloud - AMQP, RabbitMQ and Spring
Multiply like rabbits with rabbit mq
Enterprise Messaging with RabbitMQ.pdf
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
Multi-platform Enterprise Messaging with RabbitMQ
High powered messaging with RabbitMQ
Messaging with RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Messaging with amqp and rabbitmq
AMQP with RabbitMQ
The RabbitMQ Message Broker
Ruby Microservices with RabbitMQ
RabbitMQ and AMQP with .net client library
Spring RabbitMQ
Message Broker System and RabbitMQ
The Art of Message Queues - TEKX
Spring RabbitMQ
Messaging in the Cloud - AMQP, RabbitMQ and Spring

More from Ortus Solutions, Corp (20)

PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
PDF
June Webinar: BoxLang-Dynamic-AWS-Lambda
PDF
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
PDF
What's-New-with-BoxLang-Brad Wood.pptx.pdf
PDF
Getting Started with BoxLang - CFCamp 2025.pdf
PDF
CFCamp2025 - Keynote Day 1 led by Luis Majano.pdf
PDF
What's New with BoxLang Led by Brad Wood.pdf
PDF
Vector Databases and the BoxLangCFML Developer.pdf
PDF
Using cbSSO in a ColdBox App Led by Jacob Beers.pdf
PDF
Use JSON to Slash Your Database Performance.pdf
PDF
Portable CI wGitLab and Github led by Gavin Pickin.pdf
PDF
Tame the Mesh An intro to cross-platform tracing and troubleshooting.pdf
PDF
Supercharging CommandBox with Let's Encrypt.pdf
PDF
Spice up your site with cool animations using GSAP..pdf
PDF
Passkeys and cbSecurity Led by Eric Peterson.pdf
PDF
Legacy Code Nightmares , Hellscapes, and Lessons Learned.pdf
PDF
Integrating the OpenAI API in Your Coldfusion Apps.pdf
PDF
Hidden Gems in FusionReactor for BoxLang, ACF, and Lucee Users.pdf
PDF
Geting-started with BoxLang Led By Raymon Camden.pdf
PDF
From Zero to CRUD with ORM - Led by Annette Liskey.pdf
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
June Webinar: BoxLang-Dynamic-AWS-Lambda
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
What's-New-with-BoxLang-Brad Wood.pptx.pdf
Getting Started with BoxLang - CFCamp 2025.pdf
CFCamp2025 - Keynote Day 1 led by Luis Majano.pdf
What's New with BoxLang Led by Brad Wood.pdf
Vector Databases and the BoxLangCFML Developer.pdf
Using cbSSO in a ColdBox App Led by Jacob Beers.pdf
Use JSON to Slash Your Database Performance.pdf
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Tame the Mesh An intro to cross-platform tracing and troubleshooting.pdf
Supercharging CommandBox with Let's Encrypt.pdf
Spice up your site with cool animations using GSAP..pdf
Passkeys and cbSecurity Led by Eric Peterson.pdf
Legacy Code Nightmares , Hellscapes, and Lessons Learned.pdf
Integrating the OpenAI API in Your Coldfusion Apps.pdf
Hidden Gems in FusionReactor for BoxLang, ACF, and Lucee Users.pdf
Geting-started with BoxLang Led By Raymon Camden.pdf
From Zero to CRUD with ORM - Led by Annette Liskey.pdf

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Big Data Technologies - Introduction.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
Cloud computing and distributed systems.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx
Spectral efficient network and resource selection model in 5G networks
Empathic Computing: Creating Shared Understanding
Big Data Technologies - Introduction.pptx
Electronic commerce courselecture one. Pdf
Cloud computing and distributed systems.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Encapsulation_ Review paper, used for researhc scholars
MIND Revenue Release Quarter 2 2025 Press Release
Per capita expenditure prediction using model stacking based on satellite ima...
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
Encapsulation theory and applications.pdf
MYSQL Presentation for SQL database connectivity

CBDW2014 - Down the RabbitMQ hole with ColdFusion

  • 1. Down the RabittMQ Hole with ColdFusion
  • 2. WHO AM I? • Luis Majano - Computer Engineer • Born in El Salvador ------------------> • Architecture + Software Design • CEO of Ortus Solutions • Manager of the IECFUG (www.iecfug.com) • Adobe Community Professional • Creator of all things Box: 
 ColdBox, ContentBox,WireBox....
  • 3. AGENDA • RPC Calls • What is Messaging • Implementations • AMQP Protocol • RabbitMQ • Nice Demo
  • 5. • Blocks Request Usage • Even if you do them Asynchronous, messages only 1 receiver • Sender always knows about receiver • Receiver knows about sender • How can we decouple knowledge? • How can we apply messaging patterns to our apps? PROBLEMS WITH RPC
  • 6. Messaging (EMS) Producer Consumer Consumer Consumer Messaging Bus Can be any system or language Can be any system or language Doesn’t care about consumers Asynchronous Does not get a response
  • 7. • Producers don’t care about consumers -> Decouple • Cross platforms-technologies-OS, you name it -> Flexibility • Event Driven Programming -> Scalability • Queueing for later delivery • Asynchronous • Load balancing • Hulkyfied services BENEFITS OF MESSAGING
  • 8. Usages and Patterns Work QueuesMessaging Publish/Subscribe Topics/Routing
  • 10. AMQP - www.amqp.org • Advanced Message Queuing Protocol • != JMS • Standard binary protocol • Exchanges • Queuing • Routing • Reliable • Secure • Several Implementations RabbitMQ ActiveMQ Qpid StormMQ
  • 11. • AMQP Messaging Broker • www.rabbitmq.com • Built on erlang like Couchbase NoSQL • Extremely fast, reliable and secure • Languages: c#, erlang, java, python, ruby, node, cfml • Simple concept • Accepts and forwards messages • Its like a post box, post office and postman
  • 12. 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
  • 13. • 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
  • 14. LOAD BALANCING + ACK Worker Queue Consumer Consumer Consumer Messages are round-robin to each consumer Consumer need to ack
  • 16. DEMOTIME • Java Producer • Java Consumer • CFML Consumer • NodeJS Consumer • JavaScript + Stomp Consumer • CFML Producer
  • 17. 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