Updated: 2024-09-23
In September 2024, MongoDB deprecated the following services:
- Atlas Device Sync
- Atlas Data API
- Atlas Device SDKs
This post covers various options available to developers in light of this announcement.
Overview of Atlas Device Sync Migration Options
Developers are now faced with a couple of options:
- 1. Stay on MongoDB
- 1a: Use PowerSync’s new MongoDB module (currently in alpha). After MongoDB went public with the news of Atlas Device Sync’s deprecation, we decided to fast-track support for MongoDB as a backend database source in PowerSync. More details below.
- 1b: Alternatively, build your own sync engine
- 2. Migrate to a different database and sync engine combination
- For example, PowerSync provides production-ready support for syncing with Postgres on the backend.
In general, PowerSync is a good migration option since it’s architecturally quite similar to Atlas Device Sync and Atlas Device SDK:
Below are more details on the different migration paths available to developers:
Option 1a: Stay on MongoDB and use PowerSync’s new MongoDB module (alpha)
After Atlas Device Sync’s deprecation, the MongoDB team reached out to us here at PowerSync and encouraged us to implement support for MongoDB as a backend database source. We decided to pull the trigger on fast-tracking this, since it would open up a smoother migration path for the many developers currently relying on Atlas Device Sync.
As of Friday September 20, 2024, our MongoDB module is in alpha status. It is currently available for testing in a Docker environment. An end-to-end demo app is available here. Please refer to the README for instructions on running it using Docker Compose.
We have also published further information on our docs site here. We hope to add a more detailed migration guide soon. You can also vote on our roadmap for MongoDB here to stay subscribed to further updates.
On the client-side, using PowerSync will require moving away from Realm to SQLite, since that’s what the PowerSync Client SDKs use under the hood.
Option 1b: Stay on MongoDB and build your own sync engine
For some very basic use cases, this could be feasible and there are some good tools on the market such as TinyBase and WatermelonDB.
Option 2: Migrate to a different database and sync engine combination
For developers who are willing and able to migrate to a different database than MongoDB, there are options such as using Postgres along with PowerSync. PowerSync provides mature production-ready support for syncing with Postgres.
Users that aren’t already running Postgres need to decide between using a hosted Postgres provider or hosting Postgres themselves. We can highly recommend taking a look at Supabase (either hosted or self-hosted) as a great way to introduce Postgres to your stack.
PowerSync & Postgres Compatibility Checklist
- Can you add Postgres to your stack?
- If you plan on using a hosted Postgres provider, do they support creating logical replication publications? This is required by PowerSync: here is a list of supported providers.
- Does PowerSync have a client SDK in your language of choice? Here is the list of supported clients.
Other options are AWS Amplify AppSync (although we’ve heard rumors that they are decommissioning their Amplify DataStore in the generation 2 backend) and ElectricSQL (not production ready yet, comparison blog post here). For a more extensive list, see Section 2 (“Build”) here.
Check back for updates
We plan on continuing to update this blog post as more information becomes available.