The primary benefit of using Cosync is that it helps a developer save time when building a collaborative application on top of MongoDB Realm, when managing large image and video assets, or when performing secure JWT authentication to a MongoDB Realm application.
From a data perspective, the MongoDB Realm server-less data-base does an excellent job synchronizing shared state between remote clients. It even handles data reconciliation if and when a client goes offline. What it does not handle well is the storage and synchronization of large asset files, specifically images, videos, music files, and/or documents. Realm does have a 3rd party service to process images that are ultimately stored on Amazon S3, but the size is limited to 4MB - which practically precludes high resolution data and videos. Plus, their third party service does not include any client side code for processing the actual upload. The Cosync Storage module provides a data structure for representing assets on Realm, and client side code for doing image cuts at different resolutions and well as code to upload images to Amazon S3 URLs.
Using Cosync Storage is extremely easy to implement from a code perspective. The developer simply needs to provide the Cosync Portal with the appropriate MongoDB Realm and Amazon S3 credentials, which automatically configures the corresponding MongoDB Realm application instance with the necessary triggers and function to implement the storage service. Sample application code is provided for Swift, Kotlin, and React-Native for the developer to seamlessly add asset storage management to their application. The Cosync Storage module handles image asset cuts, URL management, upload, and progress notification on behalf of the developer. What would normally take several months to implement is handled in a matter of hours.
CosyncJWT provides an authentication service that ties into the Custom JWT Authentication provider for MongoDB Realm. It is a service that provides identity management, secure login, and two-factor authentication either through the Google Authenticator app or through SMS using a Twilio account.
The CosyncJWT service handles onboarding on behalf an application. It implements signup with email verification through codes or web links, as well as invites with attached data. In addition the CosyncJWT service provides support for custom meta-data fields attached a user’s onboarding process, that ties directly into the meta-data feature of MongoDB Realm. Meta-data is information that is passed For the best possible experience, Realm suggest using a JWT authentication provider, based on JSON Web Tokens, like CosyncJWT.
A Cosync Developer account costs $6/month or $60/year. The benefits of this account include the use of the Cosync Storage module for an unlimited number of commercial applications with an unlimited number of users. The CosyncJWT service is bundled with the Developer account and includes up to 5000 users. Additional users beyond the initial 5000, are metered at a cost of $0.001/user per month (or at a rate of $1/1000 users per month). The CosyncJWT meters the cost of users because Cosync has to deploy servers and storage to implement this service.