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
Events structure
Section titled “Events structure”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.
Playback events
Section titled “Playback events”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 events
Section titled “Subprofile 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:
| Field | Description |
|---|---|
| eventType | Identifier for the operation being done on a subprofile. Possible values are: subprofile-created, subprofile-updated or subprofile-deleted . |
| subprofileId | The id of the affected subprofile. |
Sample event
Section titled “Sample event”{ "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"}Playlist events
Section titled “Playlist events”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:
| Field | Description |
|---|---|
| eventType | The 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. |
| subprofileId | The subprofile being used. |
| playlistId | The id of the affected playlist. |
| status | The status of the playlist. It can assume values of public or private. |
| allProfiles | When set to true, it means that the operation is visible to all subprofiles for the given user. |
| assetId | If present, specify the id of the asset being added or deleted from a playlist. |
Sample event
Section titled “Sample event”{ "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"}Device registration events
Section titled “Device registration events”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:
| Field | Description |
|---|---|
| eventType | The identifier of the device operation. It can assume values device-registered, device-deleted, device-change-denied or device-updated. |
| deviceId | The id of the affected device |
| subProfileId | The subprofile is being used. |
Sample event
Section titled “Sample event”{ "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"}Catalog changes events
Section titled “Catalog changes events”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 statecontent-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.
Asset events
Section titled “Asset events”The events notifying assets changes have the following additional field:
| Field | Description |
|---|---|
| eventType | The identifier of the asset operation. Can assume values of asset-updated or asset-deleted |
| assetId | The id of the affected asset |
Sample event
Section titled “Sample event”{ "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"}Category events
Section titled “Category events”The events notifying categories changes have the following additional field:
| Field | Description |
|---|---|
| eventType | The identifier of the category operation. Can assume values of category-updated or category-deleted |
| categoryId | The id of the affected category |
Sample event
Section titled “Sample event”{ "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"}Content Panel events
Section titled “Content Panel events”The events notifying content panels changes have the following additional field:
| Field | Description |
|---|---|
| eventType | The identifier of the content panel operation. Can assume values of contentPanel-updated or contentPanel-deleted |
| contentPanelId | The internal id of the affected content panel |
| contentKey | The public id for the content panel. Use this key to look up a specific list in the content discovery API. |
| contentPanelType | The type of the content panel, e.g. “contentpanel”, “page”, “menu” etc. |
Sample event
Section titled “Sample event”{ "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"}