(Adam from Realm) No this version does not include sync functionality, it is just for use with Realm locally. We wanted to expose it to the Node.js community as we think it has value on its own--such as interprocess communication as mentioned in the article.
However, stay tuned more updates around sync very soon!
We haven't done any formal benchmarks against other SQL databases used server-side. Usually Realm is compared against SQLite since it is also an embedded data store. For example, you can see some benchmarks with our Android version here: https://github.com/realm/realm-java-benchmarks
Realm is very cool technology, but the lack of a browser variant is a show-stopper for us. Our clients want web, iOS and Android versions of the apps we build. We really don't want to build our own CRDT syncing, I'd love to evaluate your stuff.
Thanks for the kind words and feedback! We are very interested in exposing Realm in the browser, especially in the context of Realm Mobile Platform to sync with mobile devices. However, right now we don't have any specific details. The Node.js SDK is first step in that direction since it can power REST API from Realm data.
Disclosure: We're a competitor. If you need browser support check out https://github.com/amark/gun , it runs on all major browsers and can be embedded into native apps and has realtime CRDT sync out of the box. Fully MIT / ZLIB / Apache 2 licensed.
Check out PouchDB, too. Open-source, cross-browser, and quite mature. Works in Node as well. Syncs with Couchbase. Couchbase also has an embedded native database for Android, iOS and several other platforms that can coexist with PouchDB. https://pouchdb.com/http://www.couchbase.com/nosql-databases/couchbase-mobile (Disclosure: I work for Couchbase.)
I think this would be particularly useful for Sandstorm applications. Since Sandstorm's grain-based model means that you have many small databases instead of a single big one (or a relatively small number of big shards), an embedded database like Realm seems like a particularly good fit here. I wonder if kentonv or any of the other Sandstorm developers have any thoughts on this.
I don't know much about Realm, but what you say sounds correct.
Generally we like Sandstorm apps to use sqlite because it is well-optimized for the use case of a "small" (100k-1G) database on local storage with only one process accessing the database at a time. In this use case it doesn't make sense to have a separate process dedicated to the database, clustering is irrelevant, etc.
If Realm has similar properties then indeed it would work great for Sandstorm apps.
It's the same C++ core used in the other Realm SDKs that is wrapped in JavaScript. The same API as what has been available in the ReactNative SDK for a while.
17 comments
[ 3.2 ms ] story [ 54.1 ms ] threadHowever, stay tuned more updates around sync very soon!
Generally we like Sandstorm apps to use sqlite because it is well-optimized for the use case of a "small" (100k-1G) database on local storage with only one process accessing the database at a time. In this use case it doesn't make sense to have a separate process dedicated to the database, clustering is irrelevant, etc.
If Realm has similar properties then indeed it would work great for Sandstorm apps.