I would like to share with you how Actency’s technical team has built up a messaging broker based on Drupal for a large-scaled project for one of our clients.
The broker is made up of several components in order to deliver functionalities similar to known systems such as JMS, RabbitMQ, or IronMQ.
- a user-management system which organizes subscribers (consumers) and producers around topics and guarantees the implementation of a permission-system.
- a client which holds endpoints to receive messages
- a queuing backend to manage messages in a reliable (strict FIFO) or non-reliable manner.
- a webservice to provide messages to subscribers.
- utilities to monitor active queues, messages and logs
-
a client to hold endpoints for validation-purposes of send messages.
(business-reliability features)
The dispatch-mechanism is a push-based model:
- The publisher sends a message and creates an item in the topic queue of the broker.
- A Cron job processes the topic_queue on the broker-side
-
The broker sends the messages respecting FIFO to the subscribers of the topic in question.
There is no http-request of the subscriber needed.
The Services module and the Queue API of Drupal are core-elements of the broker-architecture.
Producers and subscribers are represented by user-entities in the drupal-system.
We take advantage of Organic Groups to provide a subscriber- and producer management by topic.
... and a lot more to tell you!
Several members of our team would like to share with you our awesome experience, using Drupal for building something else than a "site".
- Log in to post comments