-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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
POSTandPUThandlers return a URL string that is picked up by the frontend for redirection; or the wayPUTis 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.