SlideShare a Scribd company logo
dropr - The Message Queue
      project for PHP
Soenke Ruempler (soenke@ruempler.eu)

          and Boris Erdmann (
   boris.erdmann@googlemail.com)

     PHP Unconference Hamburg
          26-27.04.2008
What is a Message Queue

   A FIFO buffer (first in / first out)
   Asynchronous push / pull paradigm
   Types of Message Queues
       Local message queues (Inter Process
        Communication, Pipes)
       Network message queues (Middleware) like
        ActiveMQ, MSMQ, Websphere MQ and dropr :)
   What is NOT a Message Queue
       message bus / group communication systems like
        spread
       high level frameworks like RPC / RMI etc
Ok, so what is dropr and why?

   Dropr is a PHP-only peer-2-peer Message
    Queue with a local queue storage at each node
   Why reinvent the wheel?
       There's no plain PHP message queue
       Jimdo has a distributed architecture with servers in
        Germany, USA and China so network outtakes are
        daily business
       You could use things like ActiveMQ, but a Java
        Message System at every node – and connectors
        are rare
Requirements and features

   RELIABLE and DURABLE (failsafe)-
    messaging over networks
   decentralized architecture without a single
    (point of failure) server instance
   easy to setup and use
   modularity for queue storage and message
    transports
What's currently implemented

   A filesystem storage (no database needed)
   A CURL-Upload transport (can handle multiple
    parallel uploads)
   Channels for messages
   Durability and Reliability
   The client daemon with an angel process if
    PHP dies :)
   Monitoring and Queue cleaning scripts
   Sorry, no real documentation yet, but a Howto
Ok, too much text
Use-Cases at Jimdo

   Jimdo is a online service that lets you
       easily create beautiful websites with a drag-and-
        drop interface
       social networking: friendship, user messages,
        directory of websites etc.
       And this with a distributed architecture?
The challenge

   Challenge: Distributed world-wide architecture
   Jimdo has a central database that knows all
    nodes, users and websites
       But Websites and Website Data are stored locally
        within the local nodes
       Data has to be synchronized with the central
        managment database
   So you need the Google borg-network, a
    worldwide MySQL-Master-Master Ring or a
    Message Queue
How is dropr integrated?
Pros and Cons

   Vorteile:
       Nachrichten über Objekt-Updates werden im
        Hintergrund abgearbeitet
       Lokale Server sind autark
       Migrationen sind leichter (einfach den client oder
        server stoppen)
   Nachteile
       Keine direkte Rückmeldung von Remote-Calls,
        Status muss z.B. per ACK Message transportiert
        werden
Live-Presentation

   Shell :)
Further Information, References

   dropr: https://www.dropr.org
   Jimdo :) http://www.jimdo.com/
   Draft for dropr:
   Wikipedia
        http://en.wikipedia.org/wiki/Message_queue
Ad

Recommended

Overview usage of ProudNet
Overview usage of ProudNet
Hyun-jik Bae
 
BUILDING WEBSITES ON WORDPRESS
BUILDING WEBSITES ON WORDPRESS
PRINCE KUMAR
 
Ejobportal project ppt on php my_sql
Ejobportal project ppt on php my_sql
prabhat kumar
 
Lan chatting and file transfer Project on PHP
Lan chatting and file transfer Project on PHP
Aman Soni
 
Zend Php Certification Study Guide
Zend Php Certification Study Guide
Kamalika Guha Roy
 
A Gentle Introduction To Object Oriented Php
A Gentle Introduction To Object Oriented Php
Michael Girouard
 
PHP based School ERP
PHP based School ERP
Coderobotics Studio
 
Web School - School Management System
Web School - School Management System
aju a s
 
Useful functions for arrays in php
Useful functions for arrays in php
Chetan Patel
 
Php login system with admin features evolt
Php login system with admin features evolt
GIMT
 
PHP Classes and OOPS Concept
PHP Classes and OOPS Concept
Dot Com Infoway - Custom Software, Mobile, Web Application Development and Digital Marketing Company
 
Edu ware school management system software
Edu ware school management system software
Arth InfoSoft P. Ltd.
 
Practice exam php
Practice exam php
Yesenia Sánchez Sosa
 
PHP Technical Questions
PHP Technical Questions
Pankaj Jha
 
complete Php code for a project .... (hospital management system)
complete Php code for a project .... (hospital management system)
Iftikhar Ahmad
 
Top 100 PHP Interview Questions and Answers
Top 100 PHP Interview Questions and Answers
Vineet Kumar Saini
 
1000+ php questions
1000+ php questions
Sandip Murari
 
Project on PHP for Complaint management system
Project on PHP for Complaint management system
AryaBhatt Collage of Eingineering and Technology
 
Complain Management system Presentation
Complain Management system Presentation
Apoorv Pandey
 
ONLINE COMPLAINT MANAGEMENT SYSTEM
ONLINE COMPLAINT MANAGEMENT SYSTEM
Himanshu Chaurishiya
 
Hospital management system (php project) web engineering
Hospital management system (php project) web engineering
Iftikhar Ahmad
 
Complaint management system
Complaint management system
Mitesh Patel
 
Cv Search On Job Portal
Cv Search On Job Portal
Saumya_nair
 
Oops in PHP
Oops in PHP
Mindfire Solutions
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and Answers
iimjobs and hirist
 
PHP Project PPT
PHP Project PPT
Pankil Agrawal
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
AMQP
AMQP
Karlen Kishmiryan
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
JAX London
 
Ranker jms implementation
Ranker jms implementation
EosSoftware
 

More Related Content

Viewers also liked (18)

Useful functions for arrays in php
Useful functions for arrays in php
Chetan Patel
 
Php login system with admin features evolt
Php login system with admin features evolt
GIMT
 
PHP Classes and OOPS Concept
PHP Classes and OOPS Concept
Dot Com Infoway - Custom Software, Mobile, Web Application Development and Digital Marketing Company
 
Edu ware school management system software
Edu ware school management system software
Arth InfoSoft P. Ltd.
 
Practice exam php
Practice exam php
Yesenia Sánchez Sosa
 
PHP Technical Questions
PHP Technical Questions
Pankaj Jha
 
complete Php code for a project .... (hospital management system)
complete Php code for a project .... (hospital management system)
Iftikhar Ahmad
 
Top 100 PHP Interview Questions and Answers
Top 100 PHP Interview Questions and Answers
Vineet Kumar Saini
 
1000+ php questions
1000+ php questions
Sandip Murari
 
Project on PHP for Complaint management system
Project on PHP for Complaint management system
AryaBhatt Collage of Eingineering and Technology
 
Complain Management system Presentation
Complain Management system Presentation
Apoorv Pandey
 
ONLINE COMPLAINT MANAGEMENT SYSTEM
ONLINE COMPLAINT MANAGEMENT SYSTEM
Himanshu Chaurishiya
 
Hospital management system (php project) web engineering
Hospital management system (php project) web engineering
Iftikhar Ahmad
 
Complaint management system
Complaint management system
Mitesh Patel
 
Cv Search On Job Portal
Cv Search On Job Portal
Saumya_nair
 
Oops in PHP
Oops in PHP
Mindfire Solutions
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and Answers
iimjobs and hirist
 
PHP Project PPT
PHP Project PPT
Pankil Agrawal
 
Useful functions for arrays in php
Useful functions for arrays in php
Chetan Patel
 
Php login system with admin features evolt
Php login system with admin features evolt
GIMT
 
Edu ware school management system software
Edu ware school management system software
Arth InfoSoft P. Ltd.
 
PHP Technical Questions
PHP Technical Questions
Pankaj Jha
 
complete Php code for a project .... (hospital management system)
complete Php code for a project .... (hospital management system)
Iftikhar Ahmad
 
Top 100 PHP Interview Questions and Answers
Top 100 PHP Interview Questions and Answers
Vineet Kumar Saini
 
Complain Management system Presentation
Complain Management system Presentation
Apoorv Pandey
 
ONLINE COMPLAINT MANAGEMENT SYSTEM
ONLINE COMPLAINT MANAGEMENT SYSTEM
Himanshu Chaurishiya
 
Hospital management system (php project) web engineering
Hospital management system (php project) web engineering
Iftikhar Ahmad
 
Complaint management system
Complaint management system
Mitesh Patel
 
Cv Search On Job Portal
Cv Search On Job Portal
Saumya_nair
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and Answers
iimjobs and hirist
 

Similar to Dropr - The Message Queue project for PHP (20)

The Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
AMQP
AMQP
Karlen Kishmiryan
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
JAX London
 
Ranker jms implementation
Ranker jms implementation
EosSoftware
 
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
Justin Reock
 
Real time system_performance_mon
Real time system_performance_mon
Tomas Doran
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
Eberhard Wolff
 
Messaging With ActiveMQ
Messaging With ActiveMQ
Bruce Snyder
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMS
Bruce Snyder
 
Ibm mq
Ibm mq
Prabhu Kandanur
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
Messaging With Apache ActiveMQ
Messaging With Apache ActiveMQ
Bruce Snyder
 
Message queueing
Message queueing
Richard Jones
 
Lindsay distributed geventzmq
Lindsay distributed geventzmq
Robin Xiao
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Message Queueing - by an MQ noob
Message Queueing - by an MQ noob
Richard Jones
 
Are you weak in the middle?
Are you weak in the middle?
FSCONS
 
JMS Providers Overview
JMS Providers Overview
Vadym Lotar
 
Cooking a rabbit pie
Cooking a rabbit pie
Tomas Doran
 
ZeroMQ in PHP
ZeroMQ in PHP
José Lorenzo Rodríguez Urdaneta
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
JAX London
 
Ranker jms implementation
Ranker jms implementation
EosSoftware
 
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
Justin Reock
 
Real time system_performance_mon
Real time system_performance_mon
Tomas Doran
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
Eberhard Wolff
 
Messaging With ActiveMQ
Messaging With ActiveMQ
Bruce Snyder
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMS
Bruce Snyder
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
Messaging With Apache ActiveMQ
Messaging With Apache ActiveMQ
Bruce Snyder
 
Lindsay distributed geventzmq
Lindsay distributed geventzmq
Robin Xiao
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Message Queueing - by an MQ noob
Message Queueing - by an MQ noob
Richard Jones
 
Are you weak in the middle?
Are you weak in the middle?
FSCONS
 
JMS Providers Overview
JMS Providers Overview
Vadym Lotar
 
Cooking a rabbit pie
Cooking a rabbit pie
Tomas Doran
 
Ad

More from elliando dias (20)

Clojurescript slides
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao Arduino
elliando dias
 
Minicurso arduino
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Rango
Rango
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Clojurescript slides
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
Nomenclatura e peças de container
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao Arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Ad

Recently uploaded (20)

Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 

Dropr - The Message Queue project for PHP

  • 1. dropr - The Message Queue project for PHP Soenke Ruempler ([email protected]) and Boris Erdmann ( [email protected]) PHP Unconference Hamburg 26-27.04.2008
  • 2. What is a Message Queue  A FIFO buffer (first in / first out)  Asynchronous push / pull paradigm  Types of Message Queues  Local message queues (Inter Process Communication, Pipes)  Network message queues (Middleware) like ActiveMQ, MSMQ, Websphere MQ and dropr :)  What is NOT a Message Queue  message bus / group communication systems like spread  high level frameworks like RPC / RMI etc
  • 3. Ok, so what is dropr and why?  Dropr is a PHP-only peer-2-peer Message Queue with a local queue storage at each node  Why reinvent the wheel?  There's no plain PHP message queue  Jimdo has a distributed architecture with servers in Germany, USA and China so network outtakes are daily business  You could use things like ActiveMQ, but a Java Message System at every node – and connectors are rare
  • 4. Requirements and features  RELIABLE and DURABLE (failsafe)- messaging over networks  decentralized architecture without a single (point of failure) server instance  easy to setup and use  modularity for queue storage and message transports
  • 5. What's currently implemented  A filesystem storage (no database needed)  A CURL-Upload transport (can handle multiple parallel uploads)  Channels for messages  Durability and Reliability  The client daemon with an angel process if PHP dies :)  Monitoring and Queue cleaning scripts  Sorry, no real documentation yet, but a Howto
  • 7. Use-Cases at Jimdo  Jimdo is a online service that lets you  easily create beautiful websites with a drag-and- drop interface  social networking: friendship, user messages, directory of websites etc.  And this with a distributed architecture?
  • 8. The challenge  Challenge: Distributed world-wide architecture  Jimdo has a central database that knows all nodes, users and websites  But Websites and Website Data are stored locally within the local nodes  Data has to be synchronized with the central managment database  So you need the Google borg-network, a worldwide MySQL-Master-Master Ring or a Message Queue
  • 9. How is dropr integrated?
  • 10. Pros and Cons  Vorteile:  Nachrichten über Objekt-Updates werden im Hintergrund abgearbeitet  Lokale Server sind autark  Migrationen sind leichter (einfach den client oder server stoppen)  Nachteile  Keine direkte Rückmeldung von Remote-Calls, Status muss z.B. per ACK Message transportiert werden
  • 12. Further Information, References  dropr: https://www.dropr.org  Jimdo :) http://www.jimdo.com/  Draft for dropr:  Wikipedia  http://en.wikipedia.org/wiki/Message_queue