Popular Help Content
No popular content.Page History
A frequent question about using CommCare is, "how many cases is are too many cases?"
There are lot of dimensions to this questionThis question has many dimensions, and this page is intended to help you think through them.
...
The acceptable case load number of cases varies depending upon on several factors:
...
How big the case is
...
The device/phone
The Web App
...
The complexity of what you are doing in your app
...
How long your users can wait for a case list
...
transaction or
...
a sync
...
Best Practice
We suggest the following number of cases for a single case type , we find the following case loads to be technically feasible and considered best practice:
CommCare for Android:
...
10,000
CommCare for
...
Web Apps: 10,000
However, testing a realistic transaction of cases on your phone if you will be or Web App is essential when approaching these numbers. Even though having 10,000 cases on your phone or Web App is possible, it does not mean it is operationally feasible.
A rough rule of thumb for an "average" case is that every 25 cases or so will add an additional second to the sync process.
Furthermore, just because it is technically possible to have 1000 cases on your phone may not mean it is operationally feasible - for example, if you are using We suggest keeping each sync with the server to update cases below 1000. This will determine the number of cases on each phone or Web App.
Example
If you use case sharing and need to frequently sync data frequently, it may take close to a minute each time, which . This may not be acceptable in some workflows.Closed cases are not synced to the phone and do not count against these numbers.
Performance Issues
Slow loading of the Case List
...
Applications are great at filtering cases for a case list based on case type or based on parent-child case relationships.
...
Example
If you have 500 mothers with 10 children each, the case list for the mothers can load in a reasonable amount of time. Displaying a mother's 10 child cases should be even faster. However, showing all children would take
...
more time.
Case list load time is negatively affected by how much case data gets displayed on the case list or used in sorting. Additional filtering based on case properties will also negatively affect how long it takes to load a case list.
...
If performance is your primary concern, we suggest the smallest number of case properties
...
be accessed when building the case list
...
.
Slow Sync with Server
The sync time with the server is affected by the total number of cases on the phone . The first sync may time out; subsequent syncs should succeed. To understand what's happening, the server is calculating what needs or Web App. Therefore, the first sync will be slower. However, subsequent syncs will be faster and are less likely to time out.
The server calculates the data to be sent to the phone or Web App during the first sync request and . The server will cache it the data for subsequent requests even if the first sync times out. There's ongoing work to improve this experience.
How to Test
...
Generally, we recommend testing your particular scenario with cases created using the Excel importer tool.