Event Queue (Ed-Fi)

Tool Search: Event Queue

The Event Queue lists all data syncing events which are waiting to sync data from Campus to Ed-Fi. This list may also include any change that is made to a table used for a state's Ed-Fi implementation. As events are processed, state-specific logic may remove a change event from the queue or create a JSON event which will appear in the Event Queue list.

Screenshot of the Event Queue tool.Event Queue Tool

Read - View data within the Event Queue
Write - Refresh or process events
Add - Provides no function for this tool
Delete - Provides no function for this tool

For more information about Tool Rights and how they function, see this Tool Rights article.

Prerequisites

  • Ed-Fi functionality must be enabled via the Enable Ed-Fi System Preference.
  • A valid Ed-Fi Configuration must be established in order to process events in the Event Queue. Please review the Ed-Fi Configuration article for more information. This ensures Campus is communicating with Ed-Fi and successfully sending data to their servers. If there are no valid connections, messages remain in the queue until a valid connection is made. If there are multiple connections to different Operational Data Stores (ODS), messages process for all valid connections. If one connection is valid and one or more other connections are invalid, all messages process in the Event Queue and errors are generated in the Error Log on messages for any invalid connection(s).
  • Ed-Fi IDs should be assigned to users via the Demographics tab.

Event Queue Editor

FieldDescription
Queue OrderDisplays the number the record is in the Event Queue.
Action Type
Displays the action of the record: Insert, Update, or Delete.
Campus Table / Resource Name
Displays the name of the Campus Table or Resource that triggered the record to send to Ed-Fi.
Old DataDisplays the data in the Campus table prior to the changes that triggered the record to be sent to Ed-Fi.
New DataDisplays the data in the Campus table that changed to trigger the record to be sent to Ed-Fi.
Currently ProcessingIndicates if a message is processing or queued to be processed.

Review Ed-Fi Events

To view what data was and what it was changed to, click the Show audited data link in the Old Data and New Data columns.

Screenshot of reviiewing the EVent Queue details.Reviewing Event Details


Review Resync Details

When a resync is in process, a temporary table displays in the Event Queue showing what resyncs are in progress and which resource/school combination was selected. This table only shows resyncs kicked off from the resync tool, not resyncs caused by data triggers. This table and all data related will be deleted once the resync is completed. Users can then use the Event Queue History tables to see more detail on how many records were processed.

The Details link can be selected to view an Excel report with additional details about the resync in progress.

Screenshot of clicking the Details link to view additional detials.Resync Requests Processing Table and Report


Event Queue Processing

The Process Now button forces the processing of events. The next 10,000 records not being processed are packaged to the Event Queue. Every minute, events start processing until the queue is empty. Once an event is processed, it no longer appears in the current Event Queue.

A detailed list of Event Queue statistics for the past five days can be viewed by going to the Ed-Fi Event Queue Statistics tool.

Screenshot of the Event Queue with the Process Now button highlighted.Processing Ed-Fi Events

Ed-Fi v3.x Event Queue Processing

  1. Events will not hit the event queue for a year that does not have a valid configuration or the resource is toggled off.
    1. Example: During a calendar roll forward, if there is not a valid configuration for the next school year or there is a valid configuration but all scheduling resources are toggled off, that data will not appear in the Event Queue.
  2. Ineligible records will hit the queue if there is a valid connection and the resource is turned on but there is business logic that prevents the record from sending.
    1. Example: A student's enrollment that is marked as "No Show" is modified. This record will hit the event queue but the business logic will then run and prevent it from sending to the ODS.

Ed-Fi v2.x Event Queue Processing

Whenever a change is made to a Campus table either via the UI or directly to the database, a change event is triggered and the event is sent to the Event Queue, with the following exceptions:

  • Any calendars or schools marked as Exclude, regardless of scoped year, do not send data to the Event Queue.
  • Future year data (including scheduling data) does not report or populate events in the Event Queue. The following Campus tables do not send data to the Event Queue:

    Campus Table
    Day
    EdFiGradingPeriod
    Course
    Section
    SectionPlacement
    Roster
    SectionStaffHistory
  • All other changes, other than the ones listed above, are sent to the Event Queue. The Ed-Fi transformers determine if the data should send to Ed-Fi or be removed from the Event Queue.

  • The following tables do not have a calendarID or trialID to reference for suppression and cannot be excluded from being sent to the Event Queue:

    Campus Table
    All custom tables
    DayEvent
    PeriodSchedule
    Period
    TermSchedule
    Term


Multi-Threading

The Event Queue multi-threads items of a single category (see below). Once the Event Queue encounters something of a different category, then it joins the threads. A join is when there is a stop on multi-threading, waiting until all threads have finished processing, before continuing the process anew.

The categories are: Person, Course, Related Pair, Day, Single-Thread.

The Campus tables for these categories are:

  • Person - Person, Identity, Contact, Lep, Enrollment, CustomStudent, Employment, EmploymentAssignment, GradingScore, Attendance, AttendanceUnit, TranscriptCourse, TranscriptCredit, POSEligibility, EmploymentCredential, EnrollmentAZ, EnrollmentNE, EnrollmentWI, Graduation, TestScore, Plan, ProgramParticipation, LepService, Evaluation, NEProgramsFact
  • Course – Course, Section, SectionPlacement, SectionStaffHistory, Roster, GradingTaskCredit, CustomCourse, CustomSection
  • Related Pair – RelatedPair
  • Day – Day
  • Single-Thread – All others

These categories are sorted by unique data:

  • Person – personID
  • Course – Course.number, Course.stateCode, term descriptor override, or personID (for SectionStaffHistory and Roster)
  • Related Pair – personID1 and personID2
  • Day – date and calendarID
  • Single-Thread – single threaded, so this is irrelevant

In Ed-Fi v3.x and higher, resynced data for the same resource are multi-threaded when there will not be data collisions. These are grouped into threads as follows:

  • sections resource: sectionID
  • calendars, calendarDates, classPeriods, and courses resources: object key
  • studentSchoolAssociations and staffEducationOrganizationAssignmentAssociations resources: personID
  • resources that are person-based and school-based: personID/schoolID combination
  • resources that are person-based but not school-based: personID
  • resources that are school-based but not person-based: schoolID
  • all other resources (very few) will be single threaded

Special considerations:

  • If an item has two existing threads, it can be sorted in (for example, the personID changes on a record and each of those personIDs is already assigned a thread), then the item causes a join.
  • For categories with multiple unique constraints, all are taken into account. If any of the constraints are assigned into existing threads that are not all the same thread, then the item causes a join.
  • If the associated section or course in Campus has been deleted for the Course category objects, they cause a join and then run as a single thread once all threads have finished processing.
  • If Course is the table being processed and it does not have an edFiTermType, all edFiTermTypes of any associated sections are used as unique parameters.

Multithreading Simultaneous Core and State Configurations:

If there are configurations for both Core and State types, each item in the event queue will indicate which configuration type it is for. If a trigger applies to both core and state configurations, two events are put in the Event Queue: one for core and one for state. Core and state events can always be multi-threaded regardless of the event data since they are going to separate ODS's.

Refresh Ed-Fi Event Queue

Once events have been processed, click the Refresh button to see any remaining and unprocessed/processing Ed-Fi events. 

 Once an event is processed it will no longer appear in the Event Queue.

A detailed list of event queue statistics for the past five days can be viewed by going to the Ed-Fi Event Queue Statistics tool.

Screenshot of the refreshing the Event Queue.Refreshing the Event Queue