ObjectBox, database for IoT devices, adopts snaps for simplicity and ease of installation
by Sarah Dickinson on 10 December 2019
When designers put their heart and soul into making super-fast, easy-to-use software to help take Internet of Things (IoT) apps to the next level, installation of that software needs to meet the same high standards.
ObjectBox is a database and synchronisation solution for rapid, efficient edge computing for mobile and IoT devices. Rather than each device sending all its data back to a cloud/server, ObjectBox enables data storage and processing within the device. Developers get simplicity and ease of implementation with native language APIs instead of SQL. Users can use data on edge devices faster with fewer resources.
Markus Junginger, CTO and co-founder of ObjectBox explains, “Moving decision making to the edge means faster response rates, less traffic to the cloud, and lower costs. We built an edge database with a minimal device footprint of just 1 MB for high on-device performance.” ObjectBox also synchronises data between devices and servers/the cloud for an ‘always-on’ feeling and improved data reliability. With ObjectBox, an application always works – whether the device is online or offline.
However, user-friendliness of installation and limited user installation options were both concerns. To date, ObjectBox installation had been offered only as a GitHub package. According to Markus, “GitHub is developer-centric. While it’s useful for getting started, we wanted to offer something additional that would broaden our market reach and be easy for users in general”.
ObjectBox found the installation option it was looking for through the company’s involvement in the EdgeX Foundry™ IoT Edge Platform. This vendor-neutral open source project hosted by The Linux Foundation provides a common open framework for IoT edge computing. EdgeX is also available for download and installation as a snap, the containerised software package for easy, secure installation in any Linux environment, including desktop, cloud, and IoT devices.
When Markus saw how easily the Edge X snap could be downloaded and installed from the Snap Store, he immediately saw the potential of a snap for ObjectBox. As he says, “Although EdgeX is complex, the snap is very easy for users. Whereas in other approaches, like Docker, users must specify the setup location of the file system, they do not need to do this with a snap. Snap updates with new binaries are very simple too.”
The EdgeX snap was a convenient model for ObjectBox to work with. Markus and his team built their own snap based on the EdgeX snap, swapping out the default database and replacing it with ObjectBox. He adds, “We loaded the shared libraries and other library files to get a snap with ObjectBox, EdgeX core, security, and support services, as well as Consul, Kong, Vault, a Java Runtime Environment (JRE), and a set of basic device services, all with a simpler YAML file for installation.”
Markus and ObjectBox believe that improved user discovery and adoption will be among the benefits of using snaps. Snaps will help make the advanced ObjectBox technology accessible to all businesses that want to use IoT to its full potential. Markus says, “We make it easy to handle high data volumes in different sizes of devices and systems. It’s great that installation can now be so easy too. No big instruction manual is required, and all Linux platforms can be served by snaps, from entry level like Raspberry Pi and upwards.”
ObjectBox made it’s snap available in the stable channel of the Snap Store. Publication coincided with the new EdgeX release. Markus says, “As performance is such a vital element for ObjectBox, we’re interested in any performance improvements for snaps in the future, but we’re also pretty happy for the moment.”
What advice does Markus have for other developers thinking about using snaps for the installation of their own software? He says, “Although documentation for snaps is good, it really helps to see an example of how somebody else has done it. For example, with the EdgeX snap, we could see how EdgeX had done it. Talking to other developers also is a great way to pick up a new tool speedily. From a user perspective, snaps are a great tool and I look forward to them being used more and more!”
The ObjectBox snap is available to install here.