Earlier quoted context omitted.
Hi, former Apache CouchDB guy, former Cloudant employee, and former Realm employee here… I (still) love CouchDB but at the end of the day I think its sync is a better fit for server-to-server or web client-to-server use-cases, not mobile-to-server. There’s tons of stuff CouchDB sync doesn’t support that end up being a huge problem with mobile apps… Here are the top 3 things Realm adds in my opinion: great client-side…
How is "conflict-free sync" done? The usual approach is last-write-wins, which is just a euphemism for "randomly losing user data", or CRDTs or Operational Transforms, which severely limit the data models one can sync. I'm happy to learn about a silver bullet here.
Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
51–60 of 80 posts
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#52It says the database is open source but I can't find any link to the source code. Is both the client and server open source?
The core database that powers all the versions of Realm was open-sourced today here: https://github.com/realm/realm-core The various SDKs that use the core for each mobile platform have always been open source, such as realm-cocoa: https://github.com/realm/realm-cocoa
Ok, what about the server database?
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#53Earlier quoted context omitted.
Hi, former Apache CouchDB guy, former Cloudant employee, and former Realm employee here… I (still) love CouchDB but at the end of the day I think its sync is a better fit for server-to-server or web client-to-server use-cases, not mobile-to-server. There’s tons of stuff CouchDB sync doesn’t support that end up being a huge problem with mobile apps… Here are the top 3 things Realm adds in my opinion: great client-side…
How is "conflict-free sync" done? The usual approach is last-write-wins, which is just a euphemism for "randomly losing user data", or CRDTs or Operational Transforms, which severely limit the data models one can sync. I'm happy to learn about a silver bullet here.
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#54Earlier quoted context omitted.
The core database that powers all the versions of Realm was open-sourced today here: https://github.com/realm/realm-core The various SDKs that use the core for each mobile platform have always been open source, such as realm-cocoa: https://github.com/realm/realm-cocoa
> The core database that powers all the versions of Realm was open-sourced today here: Ok, what about the server database?
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#55Earlier quoted context omitted.
(I also work on PouchDB.) For "conflict-free sync," according to the docs, this appears to be last-write-wins along with a special case for deletes: https://realm.io/docs/realm-object-server/#conflict-resoluti... . (Incidentally Couch/Pouch also has a special case for deletes, but it does the opposite behavior by default – deletions lose to updates.) There's also some language in here about how "insertions in lists a…
Realms approach to conflict resolution is very different from what you see in products like Couch. Realm is an _object_ database, so in contrast to document databases where conflict resolution happens very coarse grained at the document level, in Realm it happens at the object level (and actually all the way down into individual properties). This essentially means that the entire object graph is treated as one big CR…
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#56Former Realm employee here. So glad to see the team finally launch this. I've seen them work their asses for years (literally!) to launch something I know Realm’s 100k+ dev community was clamoring for from day one but was really hard to build. I'm biased of course but honestly I think they have soft-key shipped one of the most transformational mobile technologies ever: real-time, conflict-free sync that works as well…
CouchDB and iCloud already have this.
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#57Earlier quoted context omitted.
I think you're misunderstanding what "Native Models" means in the context of iOS work. Saying that a database uses JSON immediately, to many ios devs, recalls years of writing very fragile json serialization code. Looking through CouchDB's iOS example apps confirms that yes, basically everything that isn't a string or int has to be serialized into JSON. That's a pretty enormous annoyance, and incorporates a lot of ad…
CouchDB doesn't have any iOS code, are you perhaps referring to Couchbase?
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#58Another Core Data alternative to try is YapDatabase: https://github.com/yapstudios/YapDatabase It is similar to Realm in a lot of ways, with a simple concurrency model, and native objects (key/value/collection). It's built on top of SQLite so you can use extensions like secondary indexes, full text search, RTree. You can also use SQLCipher for full database encryption, and there's another extension to do automatic sy…
Have to say the mappings / view paradigm was not very intuitive starting out, but once that clicked things worked very well.
Glad to hear Realm is providing an alternative for syncing and will have to try it out.
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#59Earlier quoted context omitted.
How is "conflict-free sync" done? The usual approach is last-write-wins, which is just a euphemism for "randomly losing user data", or CRDTs or Operational Transforms, which severely limit the data models one can sync. I'm happy to learn about a silver bullet here.
It is true that most Operational Transform systems have limited data model support, but that's an area Realm is quite unique on. The Realm Mobile Platform supports all of Realm database's current data types, such as native support for links and ordered lists. Also have plans for much more including: substring changes, counters and sets.
It's a fair trade-off, but hardly neither objectively worse or better than couch-sync. I'm excited to see where Realm goes.
In my very unscientific approximation couch/git-style sync solves about 80% of general use cases, CRDT/OT cover another 10-15% and the rest are poor souls that have to do something custom. (All this excluding binary sync/rsync/BitTorrent/Dropbox.)
Re: Realm Mobile Platform – Realtime Sync Plus Fully Open Source Database
#60Earlier quoted context omitted.
How is "conflict-free sync" done? The usual approach is last-write-wins, which is just a euphemism for "randomly losing user data", or CRDTs or Operational Transforms, which severely limit the data models one can sync. I'm happy to learn about a silver bullet here.
It is true that most Operational Transform systems have limited data model support, but that's an area Realm is quite unique on. The Realm Mobile Platform supports all of Realm database's current data types, such as native support for links and ordered lists. Also have plans for much more including: substring changes, counters and sets.
It's a fair trade-off, but hardly neither objectively worse or better than couch-sync. I'm excited to see where Realm goes.
In my very unscientific approximation couch/git-style sync solves about 80% of general use cases, CRDT/OT cover another 10-15% and the rest are poor souls that have to do something custom. (All this excluding binary sync/rsync/BitTorrent/Dropbox.)