Data Sync is one of the typical challenges a developer faces. Synchronizing data is not easy and while JSON / REST are great, building data sync yourself is challenging. 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.
As Firebase is one of the most well-known data sync solutions, we look at the market from a Firebase alternatives perspective. However, Firebase is purely cloud based and offers no support for local data storage and 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. Reasons to move to the edge, include: Data Speed, Data Privacy/Security, Broadband Limitations, Network Costs, Cloud Costs, and User Experience. 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 synchronization solutions? Very few. As there is no lack of cloud-based offerings, we focus on the most prominent cloud services only, and add all edge / offline sync solutions, we are aware of, to our comprehensive comparison of data sync solutions.
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, which includes the data synchronization, scalability, network, infrastructure challenges etc. Firebase, today, offers many different services (e.g. analytics, crashlytics) and goes well beyond sync; we are looking at Firebase from the 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, Parse was acquired by Facebook to be subsequently shut down, and Couchbase went on to raise funding. All three are still in use today.
Firebase Pros and Cons
In the following, we will look at the advantages and disadvantages of Firebase, and then compare Firebase with Firebase alternatives, like Couchbase, Parse and ObjectBox in a comprehensive matrix to give you a good overview of data sync options.
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 synchronisation 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). Typically that measn that data synchronisation is only a small part of the offering. However, that is our sole focus here.
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 and Couchbase 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 Sync | 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.
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.