Components
The following components comprise the Infinity APIs:
- Infinity API Gateway: acts as a reverse proxy for the microservice APIs and the Infinity API Identity Server. All client requests are via the Infinity API Gateway.
- Infinity API Identity Server: manages authentication and authorisation. Note: instances of the Infinity Identity API can be run on multiple servers, removing the possibility of a single point of failure in high-availability environments.
- Infinity API Microservices: the suite of microservices that will be used by client applications, such as Sites, Accounts Receivable and Invoices.
- Infinity API Orchestration Service: manages the health of the API suite. Responsible for automatically performing stops, starts and upgrades.
- Infinity API Synchronization Service: ensures that the data within the Infinity API remains consistent with Infinity AKPOS.
- RabbitMQ/Mass Transit: RabbitMQ is an open source Advanced Message Queuing Protocol engine. The Infinity API uses RabbitMQ as part of the logging framework. The Infinity API also uses Mass Transit on top of RabbitMQ for inter-service communication; this can also be used by client applications to listen for events that have occurred within the API suite.
- InfinityAPI Database: the Infinity API uses a SQL Server database as its backend.
- Elastic Stack: the Infinity API uses the Elastic Stack as part of the logging infrastructure. The Elastic Stack is made up of Elasticsearch, Logstash and Kibana.
This diagram shows how these components relate to each other: