Image for post
Image for post

MongoDB Realm is the leading offline-first synchronizing platform for developing collaborative cross-platform applications that do not require continuous connectivity. It is a real-time client side database that allows mobile or desktop apps to synchronize data to a MongoDB Atlas cluster. The Beta version of MongoDB Realm was released in June 2020, and has steadily been improving ever since. This platform is truly transformational because it is ushering in a whole new class of computing — notably collaborative software — where multiple users access shared data in a structured architected fashion.

At Cosync, Inc we are building a number of collaborative extensions on top of the MongoDB Realm real-time database. In the process of implementing our products, we have had to resort to multi-threading to optimize performance and increase responsiveness. Fortunately, MongoDB Realm is designed with multi-threading in mind, and handles concurrency very well. The same cannot be said for Apple’s new Swift language, which tends to hide traditional multi-threading constructs behind the callback structure of the language itself. The rules for multi-threaded programming within MongoDB Realm are fairly explicit, and any deviation from those rules generally results in a runtime exception. This article aims to elucidate what those rules are and how to enforce conformance to them within the Swift programming language. …


Image for post
Image for post

I grew up in Paris France and went to French high-school there. There is a lot I loved about the culture, but one of the most frustrating aspects of French pedagogy was their inability to synthesize a complex subject down to something that was understandable. The term they used for anyone who succeeded in this task was called an oeuvre de vulgarisation — which literally translates to a masterpiece for the vulgar. In a my own attempt to explain MongoDB Sync Realm Permissions, I now present my own chef-d’œuvre de vulgarisation.


Image for post
Image for post

In June 2020, MongoDB finally released their first beta version of MongoDB Realm — a real time database technology that combined the backend of MongoDB with the front-end mobile technology of Realm.io. Over the last five years, Realm has proven to be an invaluable object database to store cached web data for virtually all cloud connected apps. Whether a developer was using their own backend server and REST API, or a backend as a service product like Firebase, Realm was the only cross platform solution for iOS and Android development for storing local data. In late 2017, Realm introduced a cloud synching technology of their own called Realm Cloud, which essentially provided client to client synching of local databases over a Realm Sync server. The primary advantage of the Realm Cloud solution over other backend end as a services, such as Google Firebase, was that application could still access the synchronized data as if were interfacing to a local database. Server-side synching was done in the background auto-magically, with very little effort on the part of the developer. Firebase did not preclude the use of Realm, in fact it was still necessary to use it for local caching, rather Realm Cloud did away with all the translation code between the local Realm and the server Firebase components within the application. …


Image for post
Image for post

I have been a Realm Cloud developer since early 2018, shortly after the Realm company introduced its Realm Cloud upgrade to its native object data base. As a mobile developer, I have been using Realm since 2015 to cache all my local data for both iOS and Android development. In my opinion, Realm has been a necessary adjunct for any developer programming cloud based mobile applications, using simple REST APIs. Prior to the introduction of Realm Cloud, I used Google Firebase/Firestore as a server sync solution in conjunction with Realm, which I used for local object caching and storage. …


Realm.io versus Google Firebase — a security perspective

Image for post
Image for post

This article is one of a series of short pieces in which I try to compare the features of Google’s Firebase product to Realm Cloud platform. Both of these offerings provide real-time data-base functionality for mobile applications; both are referred to as a backend as a service (mBAAS). This piece is focused on the differences in the security models between Firebase and Realm Cloud.

More information about Realm.io can be found at

More information about Google Firebase can be found at

I have been an iOS developer for the past seven years and have used both Firebase and the Realm object database extensively since 2015. While working as the mobile architect for Needly, Inc in Santa Monica CA, I helped develop the Troop Team product and the WorkCoin market product. Both of these products relied on Firebase as a backend and used Realm as the local object data base. Today, I am managing a new startup called Cosync, Inc that is developing a collaboration platform around the Realm Cloud platform. …

About

Richard Krueger

I have been a software entrepreneur for the past 25 years and an iOS programmer for the last eight years. I am the founder of Cosync, Inc.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store