Realm Mobile Database Now on Node
- By David Ramel
- November 28, 2016
Having started out offering an alternative to the SQLite and Core Data databases used on the Android and iOS platforms, Realm has steadily expanded its object database, which hit version 1.0 in May. For example, in September it open sourced the database and added back-end functionality in order to provide a complete enterprise platform.
"Over the years, we've had tons of requests from mobile developers for a version of Realm that worked on the server, so it's long been on our backlog, though not highly prioritized," the company said in a blog post earlier this month. "But our priorities changed when we released the new Realm Mobile Platform in September, and potential customers started asking us for a Node interface for the platform. We pretty quickly made Node part of the platform product strategy (more on that in a few days), and that led to the creation of Realm Node.js."
The Node.js version of the company's database joins other client-side versions it developed for Swift, Objective-C, Java, Xamarin and React Native.
The primary reason developers asked for the server-side functionality of the new Node offering is that it lets developers create pre-populated "Realms" to clients, avoiding issues like app size limits, the company said.
"But things got even more interesting when we showed some early versions to backend developers and learned that it might be a lot more broadly useful to the Node community than we originally imagined," Realm said. "For example, we realized that it is useful for sharing live data between multiple Node instances."
In the blog post, the company provides an example of just such functionality, enabled by its Multiversion Concurrency Control to facilitate concurrent access to the database across multiple threads and processes.
Realm said its new offering might also be used for: working with large datasets that don't fit in local memory; creating queryable and observable data structures; building reactive architectures over multiple Node instances; or communicating between Docker images.
David Ramel is an editor and writer for Converge360.