Difference between revisions of "Subscription and Notification Pattern"
Line 128: | Line 128: | ||
Functional check of request to unsubscribe: does subscription exists. | Functional check of request to unsubscribe: does subscription exists. | ||
− | |||
If the request does not pass the functional check, the request is rejected. | If the request does not pass the functional check, the request is rejected. | ||
Line 150: | Line 149: | ||
* If messages resemble BRIS messages that would avoid extra work to be done; because this mechanism is in already in place | * If messages resemble BRIS messages that would avoid extra work to be done; because this mechanism is in already in place | ||
− | * Harmonised set of business | + | * Harmonised set of business events possibly needed. |
− | * Register on evidence type | + | * Register on evidence type: tbd |
|- | |- | ||
|'''Confirm (un)subscription''' | |'''Confirm (un)subscription''' | ||
Line 168: | Line 167: | ||
* A / M = Automated or Manual | * A / M = Automated or Manual | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Event Notification === | === Event Notification === | ||
Line 192: | Line 179: | ||
|Company representative / SP | |Company representative / SP | ||
|User | |User | ||
− | | | + | |An event regarding the company triggers the notification process. This event can be initiated by: |
* a representative of the company itself, e.g.: merger, change of owner. | * a representative of the company itself, e.g.: merger, change of owner. | ||
Line 200: | Line 187: | ||
|DO | |DO | ||
|User | |User | ||
− | |Standard process of the Data Owner - Business Register - to process changes in company registration. | + | |Standard process of the Data Owner - Business Register - to process changes in company registration as a result of the business event. |
|- | |- | ||
− | |'''Identify event''' | + | |'''Identify DE4A event''' |
|DO | |DO | ||
|Service | |Service | ||
− | |The DO | + | |The DO determines the DE4A Business event name. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Note that | + | Note that the DO must have a mapping of it's own business events to the list of DE4A business events. |
|- | |- | ||
|'''Check subscription''' | |'''Check subscription''' | ||
|DO | |DO | ||
|Service | |Service | ||
− | |Check the subscription | + | |Check the subscription register for subscribers to the company that is the subject of the business event: |
* No active subscriptions: end of process | * No active subscriptions: end of process | ||
Line 228: | Line 208: | ||
|DO | |DO | ||
|Service | |Service | ||
− | | | + | |Delete this step. (sending evidence or changed data is another type of notification process) |
|- | |- | ||
|'''Prepare notification message and subscriber list''' | |'''Prepare notification message and subscriber list''' | ||
|DO | |DO | ||
|Service | |Service | ||
− | |Make a list of the subscribers to notify and create the payload of the notification | + | |Make a list of the subscribers to notify and create the payload of the notification, mainly the DE4A business event name and the timestamp the event took place. |
|- | |- | ||
|'''Resolve service metadata''' | |'''Resolve service metadata''' | ||
|DT | |DT | ||
|Service | |Service | ||
− | |Move from a list to single notifications (one for each subscriber) and lookup the routing information for each notification. | + | |Move from a list of subscribers to single notifications (one for each subscriber) and lookup the routing information for each notification. |
|- | |- | ||
|'''Resolve subscriber participant ID and inform National Coordinator''' | |'''Resolve subscriber participant ID and inform National Coordinator''' | ||
Line 275: | Line 255: | ||
Note that every determination result is logged as a part of the audit trail or for internal reasons: | Note that every determination result is logged as a part of the audit trail or for internal reasons: | ||
− | * | + | * Company identifier |
* Notified event | * Notified event | ||
* Request id | * Request id | ||
Line 294: | Line 274: | ||
|DE | |DE | ||
|Service | |Service | ||
− | | | + | |THe lookup pattern is triggered to request a new copy of the Company Registration Evidence. |
|- | |- | ||
|'''Identify business responses and notify responsible party''' | |'''Identify business responses and notify responsible party''' |
Revision as of 13:17, 6 May 2021
Introductory text
Functional Variants of the Subscription and Notification Pattern
Two distinct business requirements for Subscription and Notification Pattern: Updating of previously shared Evidence or being informed about an Event
Technically also two different approaches to Notification: Sending updated Data of a defined Evidence type or Event Notifications that contain only the identification data and the event type. Technical approach and business requirement do not relate one two one, giving rise to potential hybrid approaches.
Event The reference Architecture for the DE4A projects focusses the Subscription and Notification Pattern on Event Notification, which can be combines with the Lookup Pattern to cover the updating previously shared evidence use case. [23-04-2021: tables below still represent a hybrid approach and need rework]
Working Hypotheses
Business Process
Event Subscription
Business Process (picture)
Activity Table
Activity / UC | Role | Type* | Description |
Trigger initiate subscription | eProcedure | User | The eProcedure leads at the side of the data-evaluator to either the registration of the represented company or the registration of a branch of the represented company (the parent-company of the branch).
A successful registration of the company or the branch of the company leads to a subscription to business events of the represented company. This is needed to assess impact of these business events on service delivery to the company or the branch.
The subscription process can also be triggered for technical reasons: for instance to resend subscription requests because an error occurred at DO-side. |
Initiate subscription | DE | Service | Initiate subscription:
Note: subscriber should unsubscribe and re-subscribe if participant-id changes. To be able to do so, subscriptions have to be registered at the DE. |
Trigger cancel subscription | eProcedure / Public service / Notification | Service | Potential triggers to cancel a subscription are:
|
Cancel subscription | DE | Service | Cancel subscription:
|
Lookup event provider routing information | DR | Service | Lookup information on competent authority that facilitates subscription service (metadata tbd)
|
Inform National Coordinator that un-subscription was not successful | DR | User | In case of the cancellation of a subscription there is a slight chance the participant ID of DO has changed: a manual process deals with this (unhappy) flow. |
Send (un)subscription request | DR | Service | Send the request to subscribe or unsubscribe to the DT. |
Forward (un)subscription error | DR | Service | Forward (un)subscription error message received from DT to DE |
Investigate reason for (un)subscription error | DE | User | Analyse error and take appropriate actions (error could be on side of DE of DO) (exception so no need to model this in detail) |
Forward confirmation | DR | Service | Forward the confirmation on the (un)subscription request (received from the DT) to the DE. |
Log (un)subscription information | DE | Service | The confirmation is logged to complete the audit trail.
Note: register in a way that it is easily readable (optional: include subscription id). |
Validate (un)subscription request | DT | Service | Technical validation including forwarding to data owner. Technical exception out of scope |
Evaluate (un)subscription request | DO | Service | Functional check of request to subscribe: does company exists, are type of events/subscription supported, is DE authorized.
Functional check of request to unsubscribe: does subscription exists. If the request does not pass the functional check, the request is rejected. |
Prepare (un)subscription error message | DO | Service | Collect the content (mainly the link to the request and the error message) and send it to DT |
Send (un)subscription error message | DT | Service | Forward to DR |
Register (un)subscription | DO | Service | Data owner creates/ends the DE’s subscription on the company’s events.
Remarks:
|
Confirm (un)subscription | DO | Service | Create a confirmation: (un)subscription result (success), timestamp, link to (un)subscription request and send to DT (if applicable) |
Send (un)subscription confirmation | DT | Service | Send confirmation to DR
|
- A / M = Automated or Manual
Event Notification
Business Process (picture)
Activity / UC | Role | Type | Description |
Trigger Change in registered company | Company representative / SP | User | An event regarding the company triggers the notification process. This event can be initiated by:
|
Change company registration | DO | User | Standard process of the Data Owner - Business Register - to process changes in company registration as a result of the business event. |
Identify DE4A event | DO | Service | The DO determines the DE4A Business event name.
|
Check subscription | DO | Service | Check the subscription register for subscribers to the company that is the subject of the business event:
|
Extract evidence | DO | Service | Delete this step. (sending evidence or changed data is another type of notification process) |
Prepare notification message and subscriber list | DO | Service | Make a list of the subscribers to notify and create the payload of the notification, mainly the DE4A business event name and the timestamp the event took place. |
Resolve service metadata | DT | Service | Move from a list of subscribers to single notifications (one for each subscriber) and lookup the routing information for each notification. |
Resolve subscriber participant ID and inform National Coordinator | DT | User | If address / DE participant id is not found in the metadata, manual action is needed: contact DE / MS of participant id to analyse the exception and take appropriate measures. |
Request from DE to resend event notifications | DE | User | Exception flow for missed notifications (failed or non-failed): if a DE misses notifications a resend of notifications can be requested. |
Resend past event notifications | DT | User | The resending of previously sent notifications requires a manual action at the DT. |
Send event notification | DT | Service | Send notification, receive the acknowledgement that the notification has been received by the DR and update the audit log with both the event notification and the acknowledgement. |
Validate event notification | DR | Service | DR performs a technical validation of the event notification and forward it to the DE. A technical exception flow is out of scope of this process description.
|
Determine event response | DE | Service | Check the notified business event and determine the action to be taken.
Note that every determination result is logged as a part of the audit trail or for internal reasons:
|
Request unsubscription | DE | Service | When the company cannot be identified or is no longer active. Afterwards this will have to be analysed this to find the cause of this apparently wrong subscription and to take appropriate measures. |
Dismiss event | DE | Service | The business event is not relevant for the DE and is dismissed. No further actions need to be taken. |
Update company information | DE | Service | THe lookup pattern is triggered to request a new copy of the Company Registration Evidence. |
Identify business responses and notify responsible party | DE | User | Notify responsible party or organizational unit (that then contacts the company if needed).
Depends on process, case by case, if this can be automated or manually. |
Note:
- A functional response from DE to DO, for example to inform that appropriate actions have been taken, are out of scope of DE4A / OOP TS (it is part of BRIS requirements though). Check.
- Notifications from DE to DO (resulting from changes in the branch registration) are out of scope of DE4A / OOP TS.
Process Realization
?All on one Page or do we create sub-pages for Business Process and Process Realization?
Used by the following use cases
Application collaborations
TBD