The infrastructure that powers Octave Online, octave-online.net
There are three separate components of Octave Online Server:
- Client: Code that runs in the browser.
- Front Server: Authentication, client session handling.
- Back Server: File I/O, Octave process handling.
Communication: The Client and Front Server communicate primarily with WebSockets via socket.io; the Front Server and Back Server communicate primarily with Redis PubSub. User account information is stored in MongoDB and is accessed primarily from the Front Server. User files are stored in Git on the Server and are accessed primarily from the Back Server.
Scaling: Front Servers and Back Servers can be scaled independently (in general, you need more Back Servers than Front Servers). It is also possible to run both the Front Server and the Back Server on the same computer.