Design to send Application data from CCC Apply to SPS (by way of MDM)
Overview / Business Case
Currently, applications submitted through CCC Apply are being sent through conductor and written to the SIS at the college via the College Adaptor.
We want to augment this process in two ways:
- To use the incoming application data to update or create the student's profile in the Student Profile Service (SPS).
- To use Master Data Management (MDM) to control what data is allowed to be sent to SPS.
Master Data Management (MDM)
MDM uses SQS queues to process its data:
- Conductor sends a message to an outbound MDM SQS queue for processing.
- Conductor receives a corresponding message on an inbound MDM SQS queue that reflects the data as processed by MDM, ready to send to SPS.
Based on this architecture, we can say that this is an "asynchronous" process.
Note: MDM uses "domains" to partition data. The student application data has several "domains" in its data set, so in reality this process represents multiple SQS messages - one per domain. The three domains we are concerned with are: Application, Demographics, Contacts.
Student Profile Service (SPS)
The Student Profile Service (SPS) is exposed via a RESTful API. It contains endpoints for each data set that we want to POST to.
Current Design - Student Application to College Adaptor and MDM
The current design, below, processes applications from CCC Apply and sends them to the College Adaptor and MDM:
New Design - MDM to SPS
The new design, below, will take messages from MDM, transform them and send them to SPS.
Important note: The incoming MDM messages should correspond 1-1 with the outgoing messages sent to MDM in the "current design" workflow above. The message reflects whatever processing MDM wants to do with that data.
New Event Handler - MDM messages
An event handler will be created to listen on a specific SQS queue. This event handler will call the new workflow with the contents of the message.
New Workflow - MDM message processing
A workflow will be created to process the message. This will be a 3 step process:
- Determine domain of MDM message
- Transform the incoming message from MDM to the format that SPS will accept based on the domain
- Send the transformed message to SPS at an endpoint based on the domain