Realm seems to offer all the get things done features of Fauna. Can a summary be provided of the differences please.
From my understanding Fauna is all about consistency, however consistency is only a practical concern when you have enough users and usage to justify it, at which point you are probably already rolling in the money and can hire a team to address consistency then.
Realm touts offline-first as a primary feature, yet I cannot find any information on Fauna about their offline support.
Fauna is a serverless operational database accessed over an API, for storing and serving data that must be secure, highly available, consistent, and connected. We do not have out-of-the-box offline sync but you can use the temporality features for some of the same goals.
Realm is an embedded mobile database (like SQLite) that syncs to the cloud. Basically for local app storage with periodic backups. It runs on the client device so it cannot be secure, highly available, or scalable beyond the device boundaries.
You could easily use both of them in the same application if you wanted to.
To your other point, data consistency is key for productivity…you will have a hard time (as we did at Twitter) accomplishing anything else if you have to work around possible data corruption at every moment. I lived the experience you describe and I don’t recommend it. Simple things like guaranteeing unique usernames, managing inventory of digital goods, restricting access to private data, etc., shouldn’t be hard.
To me it sounds like Realm would be good for storing the actual data of a project like a collaborative notes app like Notion (where you go offline pretty often and don’t necessarily care about consistency until you reconnect), but Fauna would be good for managing the user account details?
That depends on how you structure your data model; historical data older than 7 days will be removed, but the latest version of each record will always be available even if it’s older than 7 days.
Presumably in this scenario you would do a total cache refresh anyway and not rely on temporality.