Most applications are built to rely on the cloud. However, many organizations are beginning to realize that cloud dependency has drawbacks. The challenges of cloud over-dependency are most apparent in industries such as aviation, quick-service restaurants, e-commerce, and healthcare, where deskless workforces rely on mobile apps to do their jobs.
Using the cloud in practice
Think about how a modern fast-food restaurant uses mobile technology today. Customers input their menu choices at kiosks in the restaurant, on handhelds at the drive-thru, or at point-of-sale terminals. Their order is then sent to screens in the kitchen for the order to be made up. When it is ready, an alert is sent to counter staff to hand it over. Whilst it sounds simple, this is actually a complex, business-critical workflow in which it is vital that data is synchronized and shared in real-time.
This data must travel to a remote data center halfway around the world just to arrive at a device in the same building. Business apps become unusable if the data connection is slow, a Wi-Fi router breaks, or there is a cloud service outage.
Since cloud-only applications have so many single points of failure, operations halt whilst waiting for a device to reconnect. Apps like these do not provide a great user experience and ultimately cost businesses money, customer experience, or worse. In situations like healthcare, where decisions about a patient’s treatment are logged and updated on mobile devices used by a team, these interruptions and their impact on quick decision-making may have serious implications.
Finding ways to connect those different devices directly is an obvious solution. Indeed, peer-to-peer networking between devices is common; how many times have you used AirDrop to send pictures to a friend’s smartphone?
So why are we not more collaborative work apps built with cloud-optional features to enable them to function without the Internet?
One answer is that it has been easier to build cloud-only applications. A wealth of cloud-only databases and tools has meant developers have not had to worry about TCP/IP networking, database partitioning, or on-disk compression whenever they must update a field in a database table.
Moving beyond cloud-only applications
By contrast, offline-first applications have been challenging to implement because of the limited tools available to support them. There are scalable peer-to-peer protocols for data that do not change, like AirDropping photos. However, developers need the reliability of a database when data updates must be in real-time or super-accurate. To do this, an offline-first datastore capable of handling offline and peer-to-peer changes must be built.
But where to start? A model for a datastore that allows these in-the-field apps to work without a cloud connection has several key characteristics.
Firstly, it must be user-friendly for software developers. Instead of sending data to a remote server, the application needs to write data to its local database first in the form of changes, then detect changes from other devices and recombine them whenever needed. Devices must be able to discover, connect, and maintain these connections with nearby devices in what is called a mesh network. It is important to note that creating mesh networks for peer-to-peer data synchronization is not a silver bullet for enabling an organization to go cloud-optional when it needs to. These networks generate vast amounts of data that can overwhelm small devices if each node aggressively tries to sync every piece of data, which becomes a hindrance to businesses and halts operations.
As such, to overcome this, different types of devices should have different responsibilities when it comes to synchronizing the data. Smaller devices such as phones and tablets that have less processing power and storage capacity can focus on synchronizing the data explicitly requested by other devices, not complete documents, so as not to overwhelm the device’s bandwidth. This means that these smaller devices can sync data incredibly quickly because only the deltas are exchanged. Larger devices, such as local or cloud servers, connected to the mesh through the internet, should be responsible for synchronizing as much data as possible, ensuring data access and visibility for users who are not directly connected to the local mesh.
When considering the latency aspect of synchronization, a peer-to-peer mesh network must make it easy for other devices to join and leave when they need to. Within this model, it is key to ensure that all devices have input from the same data source. However, this poses a great mathematical challenge as the mesh network topology changes over time. So, it is important for these mesh networks to be flexible without needing to have the complete full history of a database table to write or read the latest value. Therefore, creating an ad-hoc network.
For this to be successful, the peer-to-peer mesh network must understand that devices update frequently but at different times, so it must take into account the incoming data with different schemas. In this way, even if a device is offline and, therefore, outdated, it should still be able to read new data and sync. The way to do this lies in how the network works with a device in a reliable order of changes that can be inspected, which also includes incorporating metadata about schema changes over time.
Developers need the proper tools to be able to purposely build cloud-optional apps. When there is an interruption, all devices must see the same query results given the same set of changes, even if the changes arrive in a different order. It is challenging for development teams to create a dependable, offline-first, peer-to-peer datastore that syncs data in a partially connected mesh. However, as cloud-optional capabilities become more attractive, there will be growing demand for a complete end-to-end solution that combines the best of cloud software with the best of peer-to-peer software.
We’ve featured the best cloud computing.
This article was produced as part of TechRadarPro’s Expert Insights channel where we feature the best and brightest minds in the technology industry today. The views expressed here are those of the author and are not necessarily those of TechRadarPro or Future plc. If you are interested in contributing find out more here: https://www.techradar.com/news/submit-your-story-to-techradar-pro