System architecture as a global | gAPI functional architecture |
---|---|
gAPI is composed by several components:
- Service Discovery (SD) - where all APIs and MicroServices are stored. The storage can be done to MongoDB or JSON file (to reduce dependencies)
- Request Logging - this component is responsible for logging all requests information. It uses RabbitMQ to publish new logs to a queue. This component also contains a listener/consumer which is listening from RabbitMQ and stores logs to ElasticSearch
- API - allows to access gAPI features:
- Register, list, find or delete a MicroService
- Get request analytics
- Authenticate user on gAPI services
- OAuth authenticator - responsible for authenticating users on MicroServices. This component uses an external oauth server to validate token.
- Proxy - responsible for requesting the correct microservice when a new requests comes.
- Authentication - gAPI Authentication service.