Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

DCM 2.0 consists of multiple components that are linked to the Blueriq Runtime. Because these components are separated from each other, they need a way to communicate with each other. To do that, aside from using HTTP protocol, the AMQP (Advanced Message Queueing Protocol) is used. This technology enables multiple components to send messages to each other via multiple so-called queues. Queues are essential for the new DCM architecture.

One of the advantages of messaging is that communication is asynchronous. This means that when a message has been sent, the producing component does not have to wait for an answer and can continue doing other tasks. The receiving component does not need to be running to be able to send a message to it. When a message has been delivered to the exchange, it will be placed in the bound queue and will be read when the receiving component is online. Also the order of receival is kept within the queue, and delivered in the same order to the receiving component.

For the DCM setup, we use several queues and exchanges. We use dead letter queues to store messages that could not be processed, because an error occurred when processing. The error should be visible in the log file. Messages on these dead letter queues will be automatically retried by the DCM Maintenance Application. If it exceeds the configured amount of retries it should be reviewed manually by a system administrator instead. There is no notification mechanism for dead letter messages, so Blueriq advises to check the dead letter queues periodically.

The overview on the Blueriq DCM architecture overview page shows the different components that communicate with each other using a queue.

RabbitMQ

To use the asynchronous communication with queues, we need software that manages these queues. This software is called a message broker. The message broker is where queues are defined together with the corresponding exchanges.

Blueriq supports RabbitMQ as the message broker.

The following page describes how to install RabbitMQ: Installation of RabbitMQ

The following page describes how to configure RabbitMQ: Configuring

Jira
serverBlueriq JIRA
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId0041244a-fbd0-37c8-b035-75d3b6eee3d1
keyBQ-14447

Queueing is an essential component for the new DCM architecture. It supports asynchronous communication between the different components. This page describes how Queueing is used in the DCM setup, how to install RabbitMQ and configure it with a default configuration and how to change the default configuration.

TODO: Insert image here

Blueriq supports RabbitMQ as a queue implementation. The following page describes how to install RabbitMQ: Installing RabbitMQ