Scalability numbers: maximum users and projects?

What are the maximum numbers of users you have run Upsource with (in multihost installation of course)? Can I consider having 1,000 people over 4,000 projects for instance?

I am looking at the page below and I have some questions.

1. It says Cassandra is not scalable, I wonder what it means. My understanding is that I should be able to add as many machines as I want to a Cassandra cluster, is that correct?

2. It says file-clustering is not scalable as well. The documentation says "as even a single service can support very high loads of over 100 projects". Is that number accurate? 100 does not seem many. How should I understand the value 100 here? 100 projects being modified in the same time?

Thank you!


Hi James,

There are Upsource instances that handle several thousands of users. So your amount of users and projects should be doable.

1. We bundle a Cassandra image within Upsource cluster distribution. That one is not scalable. But you can always setup your own Cassandra cluster with as many nodes as you wish.

2. It means 100 heavy projects with thousands of simultaneously active users.Are all of your 4000 projects access/modified by hundreds of developers on daily basis?


Hello Artem and thanks for the response.

1. Thanks, clarified. We'll probably do this.

2. No. We typically have many projects but much fewer active projects, not many people per project. Our regular commit churn is below 300 commits/h with exceptional peaks on 2,000 commits/h. So far only less than 400 projects per day and less than 100 projects per hour receive commits. I believe some components will scale with the # of projects and some others with the # of users and I am trying to understand which. If the file-clustering is only busy with the projects that actually receive commits, that makes less than 100 distinct projects over the hour or less than 30 projects each 10 minutes.



Hi James,

File clustering process is responsible for suggested reviewers features. So can take a really huge load. Probably it's too little functionality to be a separate component, but it was made because of architecture specifics.


Please sign in to leave a comment.