Our client is a leading HR consultancy in US providing Performance Management and Training solutions.
Data requirements of each application were analyzed.
Data points to be received by APIs were identified.
A common JSON structure for the API payload was designed.
The data points in the payload were mapped to the corresponding data points of each application.
An authentication subscription mechanism was implemented using WSO2 Identity Server.
A custom application was developed in Laravel to manage subscriptions to the different applications, which interacts with WSO2 Identity Server.
API endpoints were developed in WSO2 API Manager.
APIs were developed for each application that required to receive & send data.
Data distribution flow was developed in WSO2 API Manager to re-distribute the data received by API endpoints to the relevant subscribed applications.
For efficient queuing, prevention of data loss and to be able retry on failure, RabbitMQ was implemented as the queue service and PostgreSQL was used for persistence.
Notification alerts were implemented to notify admin in case of repeated failure.
When the API platform distributed data to the subscribed applications, if any of the application is not available to receive data, due to network issues, maintenance etc., at that point in time, data is lost.
To address this, a data queue mechanism and retry logic were implemented. Data would remain in the queue and retry would happen until a successful response is received from the application.
Administrator would be alerted if retry failed repeatedly.