Real world usage of distributed software always entails the possibility of network failure. Using a variety of techniques, offline robustness can be maximized.
Progressive Web Apps - service workers for precaching and offline rendering of the application shell
Optimized protocols and technology like MQTT and Erlang