University of Illinois System

Event Streams

Service Description

Event streams provide notification of changes to authoritative data, for consumption and syncing with dependent downstream systems.

Key Concepts

  • Client Integration
    The Event Streams service can be accessed from a native Kafka client or via a RESTful API. NOTE: Certain event streams require granular business rule filtering for assurance purposes, and those may only be available via the RESTful API. Please refer to the "Client Availability" designation in the Service Catalog section. Additional information is available in the Events Streams - Client Integration Guide.
  • Pull Technology
    The Event Streams service follows the publish/subscribe model in delivering events from source to client-facing topics. Clients are required to 'pull' events from those topics using the integration strategy of their choosing, per the options described in the Client Integration Guide.
  • Targeted Objects
    The objects delivered via each event stream are configured to house the minimal set of attributes necessary to describe the event and to provide the data pertinent to the change.
  • Activity Types
    • Create - A new record was created at the source system.
    • Delete - A record was deleted from the source system.
    • Replace - A record was updated at the source system.
  • Significant Changes
    A replace event will only be published when a significant attribute was changed within the impacted data object, at the source. The significant attributes for each event type are documented in the service catalog below. Other extraneous and/or metadata updates, that pertain only to the source system, will be ignored. All create and delete events are considered significant changes, and thus will trigger an event stream event.
  • Key Data
    Producers and consumers of event stream data must have a shared understanding of the data attribute(s) that uniquely identifies the affected data. The key data for each event stream object is included in the service catalog below. For objects having a multi-attribute key, all key data must be matched to ensure downstream data integrity.
  • Authoritative Source
    Each event stream object will represent a single authoritative source, or source of truth, for the data therein. Authoritative source for each object is reflected in the service catalog below.
  • Schema
    Producers and consumers of event stream data must have a shared understanding of the data object structures and attributes used to transport it. To establish and preserve this understanding, the objects used within the Event Stream service will be defined with Avro schema and evolved using the controls therein. Properties definitions and the raw schema for each object are provided in the service catalog below.
  • Governance
    All requests for integration with Event Stream services must be vetted and approved by the applicable data owners, stewards, and stakeholders around the University System. AITS will help facilitate this workflow for incoming requests.

Service Catalog

A table detailing the currently available event stream services
Category Object Description Client Availability Authority
Employee EmployeeEvent Provides notification when an employee is added or updated in the authoritative source Streams API Banner
Employee JobEvent Provides notification when a job is added/edited/terminated for an employee in the authoritative source Streams API Banner
Finance AccountingElementEvent 
Provides notification of changes to chart-organization
Streams API; Native Kafka
Banner
Person AddressEvent Provides notification of changes to street address data in the authoritative source Streams API; Native Kafka Banner
Person EmailEvent Provides notification of changes to email address data in the authoritative source Streams API; Native Kafka Banner
Person PersonEvent
Provides notification when a person's data is added or updated in the authoritative source Streams API; Native Kafka Banner
Person PhoneEvent Provides notification of changes to phone number data in the authoritative source Streams API; Native Kafka Banner
 Student CourseRegEvent
Provides notification of changes (add/drops) to course registration data. Streams API; Native Kafka Banner

Event Metadata

Metadata attributes apply commonly and are included with each Event Stream event.

A table detailing the elements within the the metadata portion of an event stream object
Path Type Name Occurrence Description
metaData Object-Array metaData Exactly One Object containing metadata describing an event stream event
metaData.event Object-Array event Exactly One Object containing details about the type and timing of an event
metaData.event.activity Element activity Exactly One The type of data change that triggered the event (created, replaced or deleted).
metaData.event.dateTime Element dateTime Exactly One The date and time at which the data change event took place
metaData.event.id Element id Exactly One The immutable ID associated with the data change event, at the source. This is separate from the Kafka offset associated with the same event.
metaData.object Object-Array object Exactly One Object containing details about the data object that changed
metaData.object.name Element name Exactly One The name of the data object that changed (e.g. Person, Address, Employee, etc).
metaData.object.version Element version Exactly One The version of data object being presented with the event
metaData.source Object-Array object Exactly One Object containing details about the source of the data
metaData.source.application Element application Exactly One Application from which the data change originated
metaData.source.store Element store Exactly One Data store from which the data change event was captured