deviceOS is purpose built for IoT gateways. IoT gateways have unique challenges:
The deviceJS message bus is a special interprocess mechanism for applications to access devices. It allows developers to separate device access from applications.
Device controllers in deviceJS are kind of like a device driver in a normal desktop OS, in that they are the conduit to connect & control that device.
deviceJS allows multiple applications to run on an IoT gateway, and still access the physical devices which the gateway is connected. It also means device controllers can be upgraded and maintained separately from applications.
Serverless apps at the IoT gateway means that applications you write, will never deal with the specifics of connecting to a physical server or be concerned with when they are deployed on a gateway.
If cloud connectivity drops, applications continue to execute, and store data, talk to local devices, talk to cloud APIs and even other applications. All connectivity issues are hidden from a deviceOS app.
Using the deviceOS proxy services is not required. But generally, the less dependent on direct cloud connectivity, the more robust the application will be.
We built DCS to be completely independent of any third party services. It designed so that it can run completely isolated. We have deployed DCS on major cloud service providers, but also in locations where access to common services on the Internet was not available.
This means you have the flexibility to deploy DCS in any manner that you or your customers see fit.