I’m evaluating offline-first options and MongoDB Realm and AWS Amplify DataStore are the 2 more interesting solutions for my case.
Sadly while DataStore supports local databases for Web and other platforms, such as RN, Android, etc, MongoDB Realm doesn’t, according to this statement on the Web SDK page:
“The Web SDK does not support creating a local database or using sync. Instead, web apps built with Realm use GraphQL or the Query API to query data stored in Atlas.”
Is there a near future plan for this to be added to the Realm features?
Realm has offline-first SDKs including React Native, Android, Swift, .NET, Node.js, and alpha SDKs for Kotlin Multiplatform and Flutter. These SDKs can be used offline-only (no sync) or offline-first with Realm Sync providing bidirectional sync between local device storage and a MongoDB Atlas cluster.
So you mean off-line first for web is not considered a use case for Real Sync?
In Amplify DataStore I can save, query, delete and filter before sync, and the code can run across iOS, Android and Web with React Native using Expo. The Web version deployed uses IndexedDB for the DataStore and for Native it uses sqlite AFAIK. It could also be possible to create a storage engine adapter for other DBs.
Could you confirm please that in the case of Realm there are no plans to offer similar functionality to work across platforms? Thank you in advance.
Per my earlier note, Realm has offline-first SDKs and there are cross-platform Realm SDKs for different languages including a Node.js SDK and a React Native SDK that are comparable to Amplify DataStore. Local storage uses a Realm database and Realm Sync enables bi-directional sync to MongoDB Atlas.