Skip to main content

Cutover Planning

For colleges that are migrating from using Coltrane and the OCFile services to exchange data with OCAS, there will need to be a cutover process that includes preparing college data in their SIS, or whichever system consumes events from Domestic on Demand.

When a college moves to Domestic on Demand, the Coltrane files are still generated and available for use as needed. This allows for a college to selectively process applications from one or the other, for example processing new cycle applications with DoD while continuing to process existing cycle applications through Coltrane. This would of course extend the period of time needed to support Coltrane for a full cycle.

Similarly, it is possible to support the sending of offers using the legacy OCFile process and though DoD at the same time, however the college would need to take care to not issue offers for a single application through both at the same time.

Recommendation: Though it is possilble to support both Coltrane and OCFile in parallel with Domestic on Demaand, it will reduce operational complexity if the college performs a full cutover to both at the same time

High-level Cutover Steps

These are the steps that OCAS and the College must complete as part of cutover. This will generally take place over a couple days depending on the volume of application records need to be seeded.

  1. OCAS Enables Domestic on Demand event generation in Production
  2. College receives and processes last Coltrane file
  3. A list is generated of all Application numbers for all applications that have been sent through Coltrane for current active application cycles
  4. College runs a script using this list to seed id data in their system (see Seeding IDs)
  5. OCAS prunes outbound DoD events for transactions that were included in last Coltrane file
  6. College begins to consume DoD events

Seeding IDs

While the same data transmitted in Coltrane is also transmitted through Domestic on Demand, there is additional data for records that needs to be stored in order to handle some event types. As described in Event and Record Correlation, each record type includes an id that is used for corresponding delete events. By having the id for a record, the college system can process received events such as ProgramChoiceDeleted​ or CourseDeleted​ regardless of whether the application was first transmitted to the college in Coltrane or in Domestic on Demand.

Here is the content of an example ProgramChoiceDeleted event:

{
"applicationNumber": "240084034",
   "applicantNumber": "210038262309",
   "programChoiceId": "3e9ace60-530c-ef11-a0b8-00155d32aa02"
}

The programChoiceId must already be in the college system to know which program choice record should be removed.

To be prepared for this scenario, the college must develop a script that can load the ids for a list of provided application numbers. This script will call the GET /applications/ API to retrieve the full application model and extract the ids for the records within the application.

Specification for the GET /applications/ endpoint can be found here: [UAT | PROD]

Example Script Flow for Seeding IDs

Note: exact flow and logic could be different for each college

Input: a list of application numbers

For each application number in the list:

  1. Call the GET /applications​/{number} endpoint
  2. Retrieve the application object in the response
  3. Find the corresponding application record in the SIS
  4. For each type of record (e.g. programChoice​, education​, academicData​ etc.) included in the response object:
    1. Find the corresponding record in the SIS
    2. Update the record in the SIS with the id​ provided on the record

Cutover Timing

The timing of the cutover can influence the volume of records that need to be seeded, however since there is always at least one active application cycle, there will always be records that need seeding. If the cutover coincides with the launch of a new application cycle, and the college continues to process existing cycle applications through Coltrane, it is possible to avoid the need to seed IDs.