Node.js powers the whole Volumio2 backend and its server infrastruture. We choose it thanks to superior performances over php (except memory usage, which remains a big concern), its non-blocking nature and its unparalleled rate of growth and community engagement.
Socket.io is ideal to exchange communications from the Backend to the FrontEnd (UI), since it works on an event basis (much more efficient than the polling method of REST APIs). Plus, it allows to send the same message to a variety of recipients simoultaneously. Last but not least, it’s fast, really fast.
There are so many UI frameworks out there, but angular was our choice since its MVC pattern and the availability of documentation and modules made it perfect to develop our state-of-the-art UI.
We choose debian because of its unparalleled stability across releases and updates. Since we build Volumio images and instances with an automated build script, a fundamental aspect is across-release compatibility and stability. Since debian doesn’t allow new packages into stable status until they’ve extensively tested, this gives us enough confidence. That would not have been possible using other, usually fast-paced, distributions.
Our cloud services are operating following the micro-services architecture: small, specialized and isolated utilities that run on isolated and replicable containers. This way, if one service fails, we can restore its operations in seconds, on another servers, and all other services will not be affected.