Skip to content

Plan to refactor webserver and separate a gateway service for the web-api #7136

@pcrespov

Description

@pcrespov

Provide web-api a dedicated gateway service to steer the traffic with the front-end. Same as the api-server acts as a gateway for the public-api.

For the sake of discussion we will assume the webserver is split in an web-api gateway service (simcore_service_web_api) and a core service (simcore_service_core) which holds all the domains currently in the webserver (e.g. projects, users, etc). Other names or further subdivisions can be considered later.

Some ideas to consider.

  1. convert app from aiohttp to fastapi
    • gateway could keep aiohttp since e.g. auth, sessions etc is also based on that
  2. convert clients from aiohttp to httpx
    • convenient mostly for respx mocking
  3. well-defined service concept by @matusdrobuliak66:
    • single service (i.e. multiple replicas) that act as both master and workers.
    • To achieve this, selected interfaces (i.e. functions) are marked and when executed they are scheduled in a queue and executed by any worker available.
    • This is partially implemented by dereference concept by @GitHK but I believe its possible to have a simplified interface e.g. based on decorators.

Metadata

Metadata

Assignees

Labels

ideaProposed new functionality that is still not implemented

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions