Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

The ESR integration consists mostly from a modern eventful tech stack.

It is composed of the following:

  • Java 11

  • Spring boot 2.2

  • Gradle

  • TestContainers

  • RabbitMQ

  • MongoDB

  • AWS (Lamda & S3)

  • Jenkins CICD

  • Containers for building

The following is a description of each part of the ESR integration

Reconciliation

Services involved:

  • InboundDataReader

  • Reconciliation

  • TCS

This part of the system retrieves a rest request from AWS upon a file upload to the FTP server (S3). The InboundDataRead receives this request and downloads the newly upload file.

Once downloaded, the file is then split into POR/POS/ASG records and each of those types are then sent to the esr.queue.<TYPE>.split queues.

The reconciliation service then picks up the POR/POS types, saves them to the database and sends it to another queue esr.queue.<TYPE>.saved

The same service then picks up the message and tries to find the relating post in TCS by making a rest request. If it exists, the post id is then saved along side the position and a new message is placed on the esr.queue.position.reconciled queue for the AppRecord and Notification services to pick up and process

AppRecords

Services involved

  • AppGenerator

  • DataExport

  • TCS

When an ESR Position has been reconciled against a TIS Post, AppRecords are then generated. For every Placement linked to said Post, we’ll generate an AppRecord and send it to the DataExport service to persist.

The DataExporter when receiving the AppRecords via the esr.queue.apprecord.generated queue, will check if they already exist. If it does exist, an update will occur if the data has not yet been exported to ESR, otherwise it’ll drop the AppRecord.

AppRecords that then match a criteria (within a window of +2 days and less than 13 weeks start date) are then picked up, written to file which is then FTP’d to the AWS server

Notifications

Confirmations

Inbound

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.