Narrative:
- Record is created in institutional source system.
- Institutionally defined logic invokes the Person Registration and Update service
- Person Registration and Update service invokes search / match to determine if the record supplied matches an existing record
- If search / match returns a definite match, person registration invokes Identifier Assignment to generate any additional identifiers (if needed), registers new person, address and affiliation data to Person Data Store and puts a message on the Person Update queue
- If search / match returns a possible match (verification required), Person Registration puts a message in a Person Record Verification queue, where Orchestration Engine will see it and fire a workflow. Should we define what the outcome of the workflow will be, or should that be institutionally defined?
- If search / match returns no possible match, person registration invokes Identifier Assignment to generate any needed identifiers, registers record to Person Data Store , and puts a message on the Person Update queue.
- Orchestration engine triggers refresh of data-driven group information in the Groups Service based on message in Person Update queue
- Or, should Groups service just poll the queue for Person Updates and pull new data as needed?
- Orchestration engine invokes rule-based provisioning in Provisioning Service.
- Or, should Provisioning Service poll a queue for group updates?
- Accounts and access are provisioned according to data-driven group membership
- Provisioning system may generate identifiers. If so, it will (call Identifier Assignment || insert into Person Update queue)
- Provisioning system may generate additional group memberships. If so, it will (call Groups API || insert into Person Update queue)