Offline-first Data Sync

Sync that just works.
ObjectBox Sync keeps your data up-to-date across devices, cloud, or local servers – online and offline.

Cross-platform, no hassle.
Skip the boilerplate. Sync effortlessly with native APIs for mobile, IoT, and embedded apps.

Data, where it matters.
Built for the edge. Efficient, reliable, and ready when you are. 100% cloud optional.

EDGE-CLOUD-dark-teal

Edge to Cloud to Edge

Do you need up-to-date data from your mobile app in the cloud or from a connected car on your backend server? ObjectBox is optimized for efficient resource use and speed on restricted devices, like e.g. ECUs. ObjectBox Sync empowers superfast and efficient automatic bidirectional edge to cloud data updates with minimal data transmission and frugal overhead.

Edge to Edge gif

Edge to Edge

Synchronize data from edge device to edge device, e.g. synchronize an IoT gateway with an industrial PC, smart phone, any controlling unit (ECU) or an on-premise server on site, directly and without the need for an Internet connection or the cloud. ObjectBox makes it easy to synchronize data between devices on-premise / offline.

Decentralized Edge Planned

Decentralized Edge [Planned]

The decentralized, distributed edge: keep data in sync and up-to-date from edge to edge with no central node. This peer-to-peer (p2p) setup works with or without a cloud or a central server. Use the p2p Offline Sync on your premises without any connection to the Internet.

 

Start Syncing your Data

Get your free Data Sync Trial now by running
docker pull objectboxio/sync-server-trial
and head over to the Data Sync Server Setup docs

Built for devs – supercharged for the edge

ObjectBox is a lightning-fast database and sync solution for edge computing10× faster than alternatives like SQLite or Realm.

Works where you work

Cross-platform. Multi-language. Designed to run offline and on-device, with seamless sync when you need it.

Your data. Always in sync. Always yours.

ACID-compliant and transactionally safe. Sync is efficient, private, and built for scale — like Dropbox, but made for apps.

SyncClient syncClient = Sync.client(
        boxStore, 
        "ws://127.0.0.1", 
        SyncCredentials.none()
).buildAndStart(); // Connect and start syncing.

val syncClient = Sync.client(
        boxStore,
        "ws://127.0.0.1",
        SyncCredentials.none()
).buildAndStart() // Connect and start syncing.

std::shared_ptr<obx::SyncClient> syncClient = obx::Sync::client(
    store, 
    "ws://127.0.0.1:9999", 
    obx::SyncCredentials::none()
);
syncClient->start();  // connect and start syncing

OBX_sync* sync_client = obx_sync(store, "ws://127.0.0.1:9999"); 
obx_sync_credentials(sync_client, OBXSyncCredentialsType_NONE, NULL, 0);
obx_sync_start(sync_client);  // connect and start syncing

OBX_sync* sync_client = obx_sync(store, "ws://127.0.0.1:9999");
obx_sync_credentials(sync_client, OBXSyncCredentialsType_NONE, NULL, 0);
obx_sync_start(sync_client);  // connect and start syncing

SyncClient syncClient = Sync.client(
        store,
        'ws://127.0.0.1:9999',
        SyncCredentials.none());
syncClient.start(); // connect and start syncing

syncClient, err := objectbox.NewSyncClient(
  store,
  "ws://127.0.0.1",
  objectbox.SyncCredentialsNone())

if err != nil {
  err = syncClient.Start() // Connect and start syncing.
} 

Data Where You Need It, When You Need It

Offline-first

The ObjectBox database stores data (objects) locally, directly on the device, enabling offline use.  ObjectBox Sync offers reliable online and offline data sync from edge to edge to server and / or the cloud. As a developer, you choose which object to synchronize when. ObjectBox takes care of harmonizing data across devices – offline on the edge, e.g. on a factory floor. ObjectBox takes care of automatically updating the cloud / a central instance when a connection is available.

Feels Serverless

Save time, costs and reduce hassle by using ObjectBox Sync. All data changes are synced automatically between client and server. ObjectBox is an embedded database with fast and safe integration into your app architecture. Free yourself from complex and time-consuming tasks and get your connected app running reliably and fast.

fast-database-edge-iot Efficient, Superfast, Sustainable

The ObjectBox database is 10x faster than any alternative; this performance advantage transfers directly to ObjectBox Sync – allowing for high speed data sync, and reduced mobile network and cloud costs. ObjectBox Sync offers a sustainable alternative to sending all data to the cloud – the less data sent to the cloud, the less energy required by the device, i.e. the longer your phone battery lasts.

Keep data local and private

ObjectBox DB persists data locally. ObjectBox Sync “server” can be hosted on-premise and on a wide variety of devices, e.g. on a mobile phone or an ECU. You can also host it on the cloud of course. So, you can control where your Data Sync takes place and never need to share data outside your devices / locations.

Object persistence on and across devices

Go to market faster by building cross-platform apps with ObjectBox. With ObjectBox, you only need one implementation across devices  – from sensor to server. ObjectBox supports many operating systems including Android, iOS, Windows, Linux, Raspbian. Use the native language of your choice, e.g. Java, Kotlin, swift, C, C++, Go, Flutter / Dart, to persist objects on the device (Edge Computing) and persist objects across devices (Sync). Benefit from efficient, lean and easily maintainable code.

AI-Icon On-device Vector Search for distributed AI

ObjectBox is the first on-device Vector Search for mobile, IoT, and other embedded devices (like ECUs, robots, machines, Raspberry Pis etc.). It’s highly performant and empowers you to do on-device RAG or on-device GenAI applications as well as boost your Edge AI performance – in a highly resourceful way, meaning: without draining the battery…. In combination with Data Sync, the opportunities for powerful, distributed Edge AI applications (and federated learning) are endless.

What is ObjectBox Data Sync?

ObjectBox Data Sync is the continual process of harmonizing data between two or more devices and updating changes automatically between them. ObjectBox is offline first and ideal for Edge Computing. With ObjectBox, developers can easily store and sync data from sensor to server – on Android, iOS, Raspbian, Windows, MacOS, Linux or any POSIX-system. With ObjectBox’ super fast NoSQL database and data synchronization solution, quickly and efficient sync the data you need. Use it offline or online to keep data in sync between edge devices like mobile phones or IoT gateways, and with other IoT devices or the backend / cloud.

reference sync

Sync Use Cases Across Industries

ObjectBox’ data persistence and synchronization solution is used in many contexts, from mobile apps to automotive, Industrial Controllers, healthcare, and smart home devices. ObjectBox empowers decentralized Edge Computing in a wide variety of use cases as a “software infrastructure”. Discover some of the industries that ObjectBox customers work in:

Syncing Principles

Sensible Syncing - only sync data when something happens

Choose which data to sync sensibly by information value, e.g. monitor constant data streams from sensors for changes (e.g. temperature) and only sync when changes occur.

Limited Syncing - keep data ownership clear and don't sync personal data

Keep confidential, car-specific and personal data locally, where it is safe. Be prepared for EU data privacy requirements.

Full Syncing Control - need a full data set? Sync all your data

Activate full sync for certain environments or times, for example while you run your AI on the edge, you might need to send over full data sets for AI model training.

ObjectBox Data Sync Questions Answered

What is ObjectBox Sync? how does it work? and how does it help my application?

ObjectBox Sync is a bidirectional data synchronization solution that keeps data consitent and up-to-date between edge devices and cloud/server environments. It works by efficiently tracking changes to all local ObjectBox databases. As soon as data is modified, ObjectBox Sync takes care of synchronizing the only the changes with a highly efficient protocol with minimal overhead. Therefore, ObjectBox Sync helps minimize data transmission and network usage. The system handles conflict resolution automatically and works both online and offline, ensuring your data remains consistent across all connected devices and servers.

What programming languages does ObjectBox Sync support?

ObjectBox Sync supports multiple programming languages, perfect for cross-platform development:

  • Java, Kotlin
  • Swift
  • C, C++
  • Go
  • Flutter/Dart
  • Python

What are the minimum hardware requirements to run Data Sync?

32-bit CPU (e.g. ARM-v6, x86), 16 MB RAM, POSIX OS

Is ObjectBox Sync secure?

ObjectBox Sync implements comprehensive security measures including:
1. End-to-end encryption for all data in transi
2. Authentication for all sync clients via JWT
3. Fine-grained access control to restrict which data can be accessed by which users
4. Option to keep sensitive data local and never sync it
Additionally, since ObjectBox can be self-hosted, you maintain complete control over your data and can implement additional security layers according to your organization’s requirements. This makes it suitable for applications with strict data privacy and security needs.

Is ObjectBox Sync free to use?

ObjectBox database itself is free and open-source, but ObjectBox Sync is a commercial product with a licensing model. The sync functionality requires a paid subscription, with pricing based on your specific deployment needs. ObjectBox offers a free trial period so you can evaluate the sync capabilities before committing to a purchase. For current pricing information and licensing options, contact the ObjectBox team.

How does ObjectBox Sync handle offline scenarios? Is it truly offline-first? Can I use Sync in offline / on-premise settings?

Yes, ObjectBox Sync is fundamentally designed to be offline-first. Your application’s data is stored locally on every device using the embedded ObjectBox database, which allows your app to maintain full functionality without an internet / cloud connection. When a connection is available (e.g. a local Wifi, Ethernet, or an internet / cloud connection), ObjectBox Sync automatically and efficiently takes care of harmonizing any data changes with other designated devices or a central server/cloud. This can be used in a complete offline / on-premise / local setting without using the internet or the cloud as well as in combination with a cloud, using an internet connection.
This offline-first approach ensures that users can continue working with your application regardless of network conditions, and data can be stored where it best fits your use case and preferences.

What platforms does ObjectBox Sync support?

ObjectBox Sync runs on a wide variety of devices and operating systems:

  • Mobile: Android, iOS
  • Desktop and Embedded: Windows, macOS, Linux, and any other POSIX-compliant system
  • Automotive: QNX
  • Cloud: Any cloud and bare metal

What platforms does ObjectBox Sync support?

ObjectBox Sync is highly optimized for efficiency, making it ideal for mobile and IoT applications where bandwidth and battery life are critical concerns. It minimizes data transmission by:
1. Synchronizing only changed data rather than entire objects
2. Using binary protocols instead of verbose formats like JSON
3. Implementing delta sync to transmit only the changed portions of objects
4. Compressing data before transmission
These optimizations result in significantly reduced bandwidth consumption and battery usage compared to traditional sync solutions. In real-world applications, users see 60-90% reduction in data transfer volume compared to prior solutions, directly translating to faster snychronisation, also improving the reliable up-to-dateness, extended battery life and reduced mobile data costs.

How do I set up ObjectBox Sync in my application?

In a nutshell, here are the three steps to start with ObjectBox Sync:

  • Set up your data model using one of the ObjectBox Sync Client language bindings (Java, Dart, Swift, C, …) to get a data model JSON file.
  • Start the server using the data model file.
  • Point your sync client to the server URL to start syncing.