Looks like we can make as many users as we want in the app.
- Is there any disadvantage of creating a separate user account for each person who will be logging in to the app, compared to sharing the same user account by a bunch of users?
- Is there any such thing as too many users?
There is a small performance cost associated with each additional user, so there is an upper limit to the number of users one instance can support. As far as I’m aware no project has hit this limit so we know we can support many thousands of users.
There are some downsides to sharing user accounts, including
- Analytics: you won’t be able to tell how individual users are performing
- Security: you won’t be able to audit who performed an action, and you won’t be able to block a specific person
- Performance: each device will replicate metadata created by the other people
- User experience: reports and messages will be marked as “read” incorrectly, and it will be impossible to configure the app differently for different people (eg: two people will be shown the same task).
I strongly recommend starting with one user account per person until you hit an issue. How many users are you anticipating?
Thanks for your great answer, Gareth.
I think there will be around 60 to 80 users per instance assuming that we create one user for each of the health facilities and the municipalities in a district. We usually have one instance per district. Using
create-users actions of the
medic-conf tool, it is now easy to create users and hierarchies in bulk.
For folk reading this later, there are also may be replication performance issues if the shared user is an offline user. We have seen odd performance behaviour in the past with the same username being used to replicate to multiple devices in testing. However, since no one deploys like this we haven’t deeply looked into it.