Our solution was to create a bridge for two-way communication between the Onefit system and each aggregator partner’s system in order to send and receive data to and fro in real time.
With Onefit’s objectives in mind, we built an endpoint consisting of an adapter and connector, between Onefit system and each aggregator partner’s system.
Partner systems expose their data via APIs, which the Onefit system consumed. The endpoint pulls information about available inventory from other aggregator’s databases and stores it in Onefit database in the Onefit format. Through the same system Onefit pushes data about bookings and cancellations to the partner.
The parts of the system that interact with each other are:
- Onefit’s Partner Inventory System
- Workout Aggregator’s System
- Adapter and Connector combination to enable communication between the two
- Update existing Back office system to view information imported by the adapter
The adapter and connector talk to other Workout Aggregator’s Systems about RESTAPIs and GraphQL APIs. The connector is responsible for consuming the vendor system’s APIs. It provides input to the adapter, which processes and stores the data in the Onefit’s Partner Inventory System. The adapters are built using Laravel, and the connectors are built in core PHP but use composer packages to avoid re-inventing the wheel.
The process includes fetching the available workouts data from the vendor’s API, booking the workouts by Onefit member to vendor’s system and also sending cancellation or bookings by Onefit members.
Our solution handles this flow in an optimized and controlled way. Any incidents during this process are logged.
The data also needed to be made available to the existing back office system, which was built using PHP and VueJS.