Versions Compared

Key

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

Purpose

The purpose of this document is to record describe the functionality the Message Broker provides to the Router/API application in MDM.

Ideally, this will be a thin facade that provides a YOUnite specific layer:

...

YOUnite MDM.

Requirements

The functionality that the YOUnite Router (i.e "Router" - the component of the YOUnite API Service that manages master data transfer between adaptors) requires from the Message Broker is relatively straightforward and is typical of most Message Bus systems.

From the Router’s standpoint, the Message Bus is the way the Router communicates with the Adaptors.  There   YOUnite creates will be one queue set up for each adaptor for incoming messages from the Router.  This queue will be used for state and data messages.  There will also be a queue for data and a queue for state that each adaptor can put messages on to be received by the Router.

There will is also be a Topic that all adaptors would subscribe to and that messages could be broadcast are broadcasted on for the Router to post messages ontoo.

As one One set of queues will be is used by the router to maintain adaptor state, one of the states is to effectively “pause” the adaptor from processing data messages.  In order to achieve this, the MB will need to support supports the temporary halting of delivery of certain types of messages.  In other words, it’s possible a queue may be put into a “paused_read-only” state where it should not process write messages, but should respond for any read requests for data.

...

So, to summarize the Router will need the following:

  • Be able Connects to connect to the Message Broker and reestablish all reestablished  connections (i.e. resume listeners) to durable but dynamically defined queues.

  • Create durable Creates queues for each adaptor upon creation

  • Destroy durable Destroys queues upon adaptor deletion

  • Be able to Can readMessage off a queue

  • Be able to Can postMessages to a queue

  • Be able to Can postMessage to a topic

  • Be able to Can temporarily halt delivery of certain types of messages

  • Be able to Can resume delivery of certain types of messages

  • Be able to Can inspect a queue (get overall stats--messages in wait, longest wait in queue, etc.)

...