17 comments

[ 3.2 ms ] story [ 54.1 ms ] thread
Does this work with the new syncing stuff?
(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!

What's the performance like? Hard to believe this could compete with SQL.
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.
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.

Is this a pure JavaScript implementation of realm, or a js wrapper around a realm process?
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.
I'm not sure it is fair to say that Realm is the first Javascript object database. What about GunDB or PouchDB?
GunDB also runs in Node by the way, AND the browser
I think the key is "object" database. PouchDB is a NoSQL document database. It certainly predates Realm.