I'm building an API infrastructure layout and would like to see your views, as well as scalability ideas and applied concepts.
I will not go into many details of internal infrastructure, behaviors, and features.
Currently the layout for the project is the image below:
The project has a heterogeneous system that needs other APIs to work. All act together, making access fully transparent to users. Most of the time APIs have replicated data for query validations in the database. In total there are 4 separate API's, each API was dedicated to doing specific operations:
API 1 - Moderação
* Roda em conjunto uma interface WEB construída em Laravel para moderação de dados enviados dos dispositivos mobile e outras plataformas
* Integra dados na API 2
* Recebe requisições de dispositivos e outras plataformas
* Recebe status de pagamentos de API's de terceiros
* Envia imagens para API 4
API 2 - Integração
* Recebe dados moderados da API 1
* Recebe requisições de dispositivos mobile
* Integra alguns dados necessários para API 3
API 3 - Processamento de dados e gerenciamento
* Recebe dados da API 2
* Processa informações a nível de Scripts
* Recebe requisições de dispositivos mobile
API 4 - Gerenciamento de imagens
* Recebe imagens da API 1
* Retorna imagens para dispositivos e outras plataformas
As it is a huge data processing, it was thought of a non-central structure to supply the demand for the availability of services, it was first thought of the layout shown in the image above where it is possible to perform the parallel integration between the APIs and to balance both the data processing and the access to the servers that host the APIs.
So, I have doubts about maintaining the code and also the applicability of this idea and I would like to know if I can continue this way, if I am on the right track and if it is really feasible to follow this configuration. I adopted this idea thinking about a really high number of accesses, considering availability of the services involved where if one stops, the system does not stop completely.
But I've seen a lot of ideas about putting this whole structure to run on a single server with a single API.
I would also like to emphasize that I intend to start with Digital Ocean servers and that they would support a large amount of concurrent access.
Technologies used:
PostgreSQL
-
All queries, updates, and inserts run at the database level where functions have been created for this purpose
-
php is just in charge of calling the functions.
Laravel
- Turn on the web moderation panel
- Roda api
phpSlim Framework (php7)
- Run the other API's