Fully synced realm vs Object permissions


#1

In our productivity app we are planning to enable a workspace based collaboration model such as known from Slack. With that consideration one year ago the only option we had is enabling this by multiple realms (currently giving us this issue).However now, with fine grained permissions at hand it is also possible to have one huge (multiple TB if usage grows) realm. Workspaces could be model objects for that permissions are granted and all the “work objects” ( e.g. tasks, dates etc) would be assigned to these workspaces and only accessible to users that have workspace access. I see the following trade off:

  1. Workspace model and fine grained permission:
  • query based (quicker) syncing
  • more flexible permission management ( e.g share an individual “task” with another person without inviting to the workspace)
  • one huuuuge realm (what if that somehow gets corrupted (happened with full sync realms some times in our experience with realm (for 2 years now) or anything - users loose their valuable data or can’t access it for a time)
  1. Full Synced one per workspace realm:
  • accountability: when we bill people for the space they take up we can easily see who needs how much space and calculate our costs accordingly
  • there is only one owner of the realm
  • with 100mb realm and full sync it takes a long time until a new member joining the workspace gets to see his/her data.
  • the realm server becomes a bit cluttered with multiple realms per user -> harder to overview as with current single user mode ( “one realm per user”)

Any considerations I missed? How would you do it?