Skip to content

Platform Events

The interaction of the end-users with the Vimond platform results in a series of events generated by several microservices. Those events are collected, filtered, transformed, and then exported on a kinesis stream that can be further analyzed by a customer.

A typical use case that can be covered by these events is ingesting them into a business intelligence system for checking the effectiveness of strategic decisions such as buying rights for the latest Hollywood movie.

At the moment, the Vimond platform supports the following domain events:

  • Playback events
  • Subprofile events
  • Playlist events
  • Device events
  • Catalog changes events

Every event generated by any service of the Vimond stack has a set of common fields

  • eventName: identifier of the event
  • tenant: identifier of the tenant of the event
  • originatorId: the end user id that triggered the event
  • versions: arrays of supported event versions
  • timestamp: date and time of when the event was created
  • guid: unique identifier of the event

In addition, each service injects custom fields that are specific for the service itself.

Those events are generated by client applications and are used to keep track of the progress status of a user while watching an asset. Each event is identifiable by the field eventName which is set to player_log_event.

📘 API Reference

See Reference: Post player event for more details on player events

Subprofile service exposes 3 different types of events, namely for subprofile creation, deletion and update. Each event is identifiable by the field eventName which is set to subprofile-event.
In addition to the standard event fields, the service injects the following fields into each event:

FieldDescription
eventTypeIdentifier for the operation being done on a subprofile. Possible values are: subprofile-created, subprofile-updated or subprofile-deleted .
subprofileIdThe id of the affected subprofile.
{
"eventName": "subprofile-event",
"tenant": "vimond",
"originatorId": "fb85ba9a-72bd-47a8-8071-68dddee1347d",
"versions": [
"1.0"
],
"timestamp": "2018-07-17T10:10:15.133Z",
"guid": "66fa2be6-cf87-4057-b956-38cbf0744571",
"eventType": "subprofile-deleted",
"subProfileId": "bf649298-1e75-44b5-a28d-b48c4b81a365"
}

The playlist service exposes 7 different events regarding end-user operation on playlists. Each event is identifiable by the field eventName which is set to playlist-event.
In addition to the standard event fields, the service injects the following fields into each event:

FieldDescription
eventTypeThe identifier for the performed playlist operation . It can assume the values user-playlist-created, user-playlist-deleted, user-playlist-overwritten, user-playlist-massdelete, user-playlist-asset-added, user-playlist-asset-removed, or user-playlist-asset-changed.
subprofileIdThe subprofile being used.
playlistIdThe id of the affected playlist.
statusThe status of the playlist. It can assume values of public or private.
allProfilesWhen set to true, it means that the operation is visible to all subprofiles for the given user.
assetIdIf present, specify the id of the asset being added or deleted from a playlist.
{
"eventType": "user-playlist-asset-added",
"eventName": "playlist-event",
"originator": "9128432",
"tenant": "vimond",
"timestamp": "2018-07-17T14:50:00.712Z",
"guid": "01ad1c4d-13c2-4bb7-b0dc-62d1aeb0787f",
"playlistId": "123",
"subProfileId": "bf649298-1e75-44b5-a28d-b48c4b81a365",
"assetId": "923"
}

The playlist service exposes 4 different events regarding end-user operation on playlists. Each event is identifiable by the field eventName which is set to device-event.
In addition to the standard event fields, the service injects the following fields into each event:

FieldDescription
eventTypeThe identifier of the device operation. It can assume values device-registered, device-deleted, device-change-denied or device-updated.
deviceIdThe id of the affected device
subProfileIdThe subprofile is being used.
{
"eventType": "device-registered",
"eventName": "device-event",
"tenant": "vimond",
"timestamp": "2018-07-17T14:50:00.712Z",
"originatorId": "1234",
"guid": "ea9c7dfb-5f0f-464b-8f60-1837d6a84f61",
"deviceId": "1",
"subProfileId": "bf649298-1e75-44b5-a28d-b48c4b81a365"
}

Every time an editor modifies an asset, category or content panel in VCC, the content delivery API generates a notification event. Those events are different according to the entity that has changed and the type of operation performed (creation/update and deletion).
Those events allow a customer to mirror the internal Vimond catalog. Even though the events contain just the id of the entity that has changed, the whole document can be retrieved by using the content discovery API.
Each event has a field called resyncType which can have the following values:

  • full if the event belongs to a full catalog resync
  • incremental if the event reflects a single catalog entity change

The catalog events are identifiable by the field eventName which can assume the following values:

  • asset-event
  • category-event
  • contentPanel-event

Moreover, each event emits on any changes and eventType can be either of below two values type and indicates below: (below content means asset, category or contentPanel)

  • content-updated : There is a change and the content is in Published state
  • content-deleted : There is a change and content is in Unpublished or deleted state

This helps the customer to identify any changes and understand the state of the content, so that it can be fetched from Content Delivery side for further processing or workflows.

The events notifying assets changes have the following additional field:

FieldDescription
eventTypeThe identifier of the asset operation. Can assume values of asset-updated or asset-deleted
assetIdThe id of the affected asset
{
"tenant": "vimond",
"eventName": "asset-event",
"assetId": "118924",
"eventType": "asset-deleted",
"timestamp": "2019-02-11T09:39:25.894Z",
"originator": "vimond-catalog-incremental-exporter",
"resyncType": "incremental",
"versions": [
"1.0"
],
"guid": "61990fe1-799b-453f-9b83-ab1f538f58d5"
}

The events notifying categories changes have the following additional field:

FieldDescription
eventTypeThe identifier of the category operation. Can assume values of category-updated or category-deleted
categoryIdThe id of the affected category
{
"tenant": "vimond",
"eventName": "category-event",
"categoryId": "4595",
"eventType": "category-updated",
"timestamp": "2019-02-11T09:14:44.950Z",
"originator": "vimond-catalog-incremental-exporter",
"resyncType": "full",
"versions": [
"1.0"
],
"guid": "7d19b8fc-0ee1-4f30-a62d-03bb6a0e7f24"
}

The events notifying content panels changes have the following additional field:

FieldDescription
eventTypeThe identifier of the content panel operation. Can assume values of contentPanel-updated or contentPanel-deleted
contentPanelIdThe internal id of the affected content panel
contentKeyThe public id for the content panel. Use this key to look up a specific list in the content discovery API.
contentPanelTypeThe type of the content panel, e.g. “contentpanel”, “page”, “menu” etc.
{
"tenant": "vimond",
"contentKey": "JgE2OICZKw",
"contentPanelType": "page",
"eventName": "contentPanel-event",
"contentPanelId": "188",
"eventType": "contentPanel-updated",
"timestamp": "2020-02-11T13:48:29.132Z",
"originatorId": "0c53-108",
"originator": "vimond-catalog-incremental-exporter",
"resyncType": "incremental"
"versions": [
"1.0"
],
"guid": "d0bf0859-3ca4-48b4-b95a-e4081de13984"
}