Versions Compared

Key

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

This document provides MDM developers the background needed to publish new notification event types to the JMS message broker so that clients can subscribe to topics and receive real-time updates to MDM events. In JMS, a topic implements publish and subscribe semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.

The default JMS provider implementation for YOUnite MDM is Apache ActiveMQ (AMQ). 

Subscribers (e.g. the YOUnite UI) use the STOMP protocol to register listeners.

Topics and Notification Types

JMS uses "topics" as a distribution mechanism for publishing messages to multiple subscribers. MDM creates topics based on MDM zones and an event type.  Each notification generated by MDM will be of a given topic (zone) and event type.  The published list of notification event types can be found on the MDM Service Event Notifications (this page should be updated as developers add new notification event types).

 

Notification Flow


This notification flow describes the interaction between the core YOUnite MDM service, the JMS service and client that subscribe to YOUnite MDM events (e.g. the YOUnite UI).  This notification flow is separate from the YOUnite MDM Router/Adaptor flow that will be published in a separate document.

...

  1. Add the new notification topic name  to the topic enum in: open-mdm/src/main/resources/raml/schemas/topicPref.json. This is a RAML file so the source needs to be built for the change to take effect.

  2. Typically the topic is generated at the resource layer (e.g. impl.resource/DomainsResource.java) after the service layer has successfully completed the event.
    1. <MAYANK - Why is createEvent() commented>
    2. The scope of delivery for an event type can be targeted for a set of subscribers. These are defined in api/generated/model/NotificationPreferences.java

      Targeted SubscribersDescription
      SELF

      Subscribers that belong to the zone that generated the event.

      CHILDREN

      Subscribers that belong to the zone that generated the event and children of that zone.

      ALL

      All zones


Subscribing to Topics

Clients such as the YOUnite UI require real time updates of MDM events. 

...