Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decouple the front and backends #2

Open
Xophmeister opened this issue Jan 8, 2018 · 1 comment
Open

Decouple the front and backends #2

Xophmeister opened this issue Jan 8, 2018 · 1 comment
Labels
enhancement New feature or request technical

Comments

@Xophmeister
Copy link
Member

Currently the webapp functions as a monolithic front and backend through one service. It would be better if they were decoupled into separate services: That is, a backend that exposes, say, a RESTful API and a frontend service that just serves the client (either a single page app, or the more traditional, multi-route app). This would have the following benefits:

  • Strict enforcement of single responsibilities (i.e., the frontend would contain no code that manipulates the application state, other than calling the API directly).

  • Similar to the above, this would enable the removal of legacy technical debt (e.g., the way in which POST and PUT handlers return a URL string that is picked up by the frontend for redirection; or the way PUT is semantically abused).

  • Better scalability: multiple frontend and backend services could be run simultaneously and load-balancing can be performed between their different hosts.

  • Potential for multiple frontend clients (e.g., mobile apps).

As a note on scalability: The scheduler would need to be extracted from the API backend, so that multiple schedulers aren't running concurrently. One thus reaches the logical conclusion of microservices, which further enforce single responsibility and maximise scalability.

@Xophmeister Xophmeister added enhancement New feature or request technical labels Jan 8, 2018
@piyushahuja
Copy link

"sort-of-done, in the sense that there are now separate front and backends. I don't know if all the old frontend stuff has been removed from the backend; if not, it may be worth getting rid of that. The last note is perhaps also worth pursuing (extracting the scheduler from the API server)"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request technical
Projects
None yet
Development

No branches or pull requests

2 participants