Data Sync is a typical recurring and typically non-trivial developer challenge. Synchronizing data in offline/online settings, like for example across eventually connected devices, is simply hard. While JSON / REST is great, building Data Sync yourself is time-consuming, risky, and typically considered no fun. Therefore, today, we take a look at the out-of-the-box Data Sync market. If you are rather interested learning about Data Sync in general, check out this article about why data sync technology is more necessary than ever.
Introduction
One of the most well-known Data Sync solutions is Firebase. However, Firebase is purely cloud based and offers no support for local data storage ( as in “data persistence above caching”) and therefore offline usage. With a huge shift happening in computing from the cloud to the edge, offline-first approaches and Edge Computing are getting more and more important. Therefore, we’ve recently taken a comprehensive look at mobile database and edge database offerings on the market. But what options do Mobile and IoT developers working on the edge have for out-of-the-box Data Sync solutions? Very few. While there are more and more cloud-based Firebase alternatives springing up nearly daily (e.g. appwrite and supabase) forcing the user into a centralized cloud setup, there is almost nothing that supports offline Data Sync and / or persistent local data storage. As our focus is on offline / edge Data Sync and local storage, in the following we add all edge / offline Data Sync solutions we know of, but spare you the wealth of cloud options only adding the established ones.
Firebase
Firebase is a cloud backend service ((Mobile) Backend as a Service ((M)BaaS)) that enables developers to build mobile or web applications without needing to take care of the backend. This includes the data synchronization, scalability, network, infrastructure challenges etc. Indeed, Firebase, today, offers many different services (e.g. analytics, crashlytics) and goes well beyond Data Sync. We are looking at Firebase from the Data Sync perspective only. Firebase was one of the first Data Sync solutions available on the market together with Parse and Couchbase, which all started in 2011 (Couchbase through a merger of CouchOne and Membase). In 2014, Firebase was acquired by Google. Incidentally, the same year Parse was acquired by Facebook to be subsequently shut down, and Couchbase raised significant funding. All three are still in use today.
Firebase Pros and Cons
In the following, we will first look at the advantages and disadvantages of Firebase. Then, we will compare Firebase with Firebase alternatives like Couchbase, Parse and ObjectBox in a comprehensive matrix.
Firebase Advantages ++ | Firebase Disadvantages — |
Cloud based | Purely cloud based |
Google: large team that supports and maintains it; very low risk of the company failing; however, Google has a reputation of discontinuing products / services, so there is no guarantee | Google: vendor lock-in (no migration tools prevents you from making your app portable), you cannot access your data as it is hosted on the Firebase server |
Backend as a service (ease of use) | Less flexibility: You cannot optimize the backend to match your app’s needs |
The Firebase Realtime Database has its own advantages:
| The Firebase Realtime Database has its own drawbacks:
|
Pay as you go, price scales with usage | Cost insecurities, hard to impossible to predict |
Less iOS support (stronger focus on Android) | Less iOS support (stronger focus on Android) |
Doesn’t work in countries that don’t allow Google | |
User privacy concerns*** |
*** “Firebase has been claimed to be used by Google to track users without their knowledge. On July 14, 2020, a lawsuit was filed accusing Google of (…) logging what the users are looking at in many types of apps, despite the user following Google’s own instructions to turn off the web and app activity collected by the company.” (https://en.wikipedia.org/wiki/Firebase)anced settings.
Firebase Advantages ++
– Cloud based
– Google: large team that supports and maintains it; very low risk of the company failing; however, Google has a reputation of discontinuing products / services, so there is no guarantee
– Backend as a service (ease of use)
– The Firebase Real-time Database has its own advantages:
– Pay as you go, price scales with usage
– Less iOS support (stronger focus on Android)
Firebase Disadvantages —
– Purely cloud based
– Google: vendor lock-in (no migration tools prevents you from making your app portable), you cannot access your data as it is hosted on the Firebase server
– Less flexibility: You cannot optimize the backend to match your app’s needs
– The Firebase Real-time Database has its own drawbacks
– the whole DB is a huge JSON file
– limited querying capabilities
– no way to efficiently filter data
– Easily disorganized, hard to navigate and search
– Cost insecurities, hard – impossible to predict
– Less iOS support (stronger focus on Android)
– Doesn’t work in the countries that don’t allow Google
– User privacy concerns: “Firebase has been claimed to be used by Google to track users without their knowledge. On July 14, 2020, a lawsuit was filed accusing Google of (…) logging what the users are looking at in many types of apps, despite the user following Google’s own instructions to turn off the web and app activity collected by the company.” (https://en.wikipedia.org/wiki/Firebase)
Firebase alternatives: A look at out-of-the-box data sync solutions
The majority of offerings for developers that handle Data Sync as defined here, are cloud-based and fall into the category of BaaS (can also be MBaaS (Mobile Backend as a Service) or PaaS (platform as a Service) or DBaaS (Database as a Service). This means that data synchronisation is only a specific part of the whole offering.
Data Sync Solution comparison matrix – Firebase and its alternatives
Solution name | Company | Category | Data Sync | IoT / Mobile | Database | Type of DB | Cloud | OS / Platforms | Languages | License |
Cloudant Sync | IBM (Cloudant was acquired in 2014) | DBaaS (Cloud DB and Cloud Sync) | Two-way cloud data replication (called “sync”) | IoT & Mobile | Cloud database based on Couch DB | NoSQL; distributed JSON document database | Cloud-based replication to and from on-device data (CouchDB <> cloud service) | hosted service | C#, Java, JavaScript, Objective-C, PHP, Ruby | Proprietary (CouchDB is Apache 2.0 and they integrate with several open source libraries) |
Couchbase server & Sync Gateway | Couchbase (a merger of Couch One and Membase) | Cloud DB and Cloud Sync | Sync needs a Couchbase Server | IoT & Mobile | Edge: Couchbase Lite; Server: Couchbase | NoSQL; document database | Always needs Couchbase Server (originally Membase) | mainly used as hosted service; iOS, Android, .NET (Desktop/Server), .NET UWP, Xamarin | Swift, Objective-C, Java (Android), Java (Non-Android), Kotlin, C#, JavaScript, C | Apache 2.0, delayed open source |
Firebase** | Google (Firebase was acquired by Google in 2014) | BaaS (Cloud) | Cloud Sync via Google servers | Mobile | Cloud: Firebase Realtime Database; Edge: Caching only (Firestore) | Document store | hosted only | APIS for iOS & Android JavaScript API RESTful HTTP API | Java JavaScript Objective-C | proprietory |
Mongo Realm Sync | MongoDB (Realm was acquired in 2019) | Cloud DB and Cloud Sync | Sync (in Alpha); only via Mongo Cloud | IoT & Mobile | Cloud: MongoDB, Edge: Mongo Realm | MongoDB: NoSQL document store; RealmDB: Embedded NoSQL DB | hosted service | MongoDB: Linux, OS X, Solaris, Windows Mongo Realm DB: Android, iOS | 20+ languages, e.g. Java, C, C#, C++ | Mongo DB changed its license from open source (GNU) to MongoDB Inc.’s Server Side Public License (SSPL) in 2018. |
ObjectBox | ObjectBox | DB and Sync | Offline p2p Sync is planned | IoT & Mobile | ObjectBox | Object-oriented embedded NoSQL DB | Self-hosted / on-premise; hosted service upon request only | iOS, Android, Linux, Windows, MacOS, any POSIX-system | C, C++ Java Kotlin Swift Go Flutter / Dart Python | DB: Open source bindings, Apache 2.0, proprietary core |
Parse | Originally Parse, acquired by Facebook, closed down and open sourced, unmaintained | MBaaS (Cloud) | Cloud Sync, self-hosted or via a provider that offers Parse hosting | Mobile | Both, PostgreSQL* and MongoDB, can be used as a database for Parse | MongoDB: NoSQL document store; PostgreSQL: | Only Cloud, only self-hosted or via a provider that offers Parse hosting | Server: | REST API lets you interact with Parse Server from anything that can send an HTTP request | open source, BSD |
Syncstudio | HandApps | Cloud-based sync between SQLite and MS SQL Server based in the MS Sync Framework | Sync | Mobile | Edge: SQLite or MSSQL (including LocalDB or Express); Server: Microsoft SQL | relational / SQL | SQL Server; Sync / replication works via cloud only | Android Java, Basic4Android, Windows Forms, UWP, Windows Mobile, Xamarin | proprietory, 4 licenses available: Community/Free, Subscription, Perpetual and Royalty Free | |
Zumero | Zumero LLC | Cloud-based replication of SQL data for Mobile | Sync | Mobile | Edge: SQLite; Server: Microsoft SQL | relational / SQL | SQL Server; Sync / replication works via cloud only | Mobile only (iOS, Android, Xamarin, PhoneGap) | proprietory,
| |
Notes: Microsoft Sync Framework (renamed Sync Framework Toolkit at some point) is a legacy open source product which MS no longer supports
* PostgreSQL vs Postgres
** There are many Cloud Sync alternatives to Firebase, we added the more prominent options and any service that also serves Edge Computing
Data Sync is no standardized term and though it seems to be in use by many big companies and most dvelopers will have a notion of what it is, the devil is in the details. So, we might have missed an important solution or taken an angle someone else would not agree with. Please feel free to let us know what to improve.
👉 Want to save this info for later? Watch the Firebase alternatives matrix on GitHub to find it easily wherever you need it.
ObjectBox DB and Sync – designed to keep data up to date across time and space
ObjectBox is a high performance NoSQL fully ACID-compliant edge database built from scratch for efficient data on and across restricted and occasionally connected devices, taking care of keeping data in sync reliably. ObjectBox developer tools are easy to use, quick to implement, and optimized for high-performance and frugal resource-use on edge devices running mobile, desktop, server, and IoT applications. ObjectBox helps developers to focus on what they love and build great applications without needing to take care of the boilerplate code for resilient connectivity, synchronizing data, and tedious DB optimizations. This cuts down initial implementation efforts, ongoing maintenance efforts, undesired problems, and data loss – therefore reducing costs and time to market tremendously. We are dedicated to bring joy and delight to Mobile and IoT application developers.