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 published list of notification event types and their payloads can be found on the MDM Service Event Notifications (this page should be updated as developers add new notification event types).

Notification Delivery

...

Scope

The scope of delivery for a given event type can will be limited to the following in the future. For now all event types are of type ALL:

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 (default)

All zones.

...

Adding Notification Types to MDM

<MAYANK>

More notification types will need to be added as features are added to MDM. The process is broken down into the following steps:

  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.

          1. Typically the
    topic
          1. notification 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
          1. NotificationService.createEvent(Enum EventType String message, String message, Map<String, String> map);
            keyvalue
            uuidZone uuid of target resource
            nameZone display name of target resource
            descriptionDescription of event
            dateTimestamp of when event occurred (TBD)
  2. The notification deliver scope y for an event by default is ALL but you can override this by TBD:



Subscribing to Topics

Clients such as the YOUnite UI require real time updates of MDM events. Background on how to develop applications that subscribe to events can be found on the MDM Service Event Notifications page.

...