MODx project: size limitations

I am exploring the possibility of using MODx (Revolution 3.03) as the platform for a large corporate knowledge base. When I say ‘large’, I mean that it would have to support a nested structure with hundreds – and perhaps thousands – of documents (and related assets). As far as data goes, the knowledge base could theoretically grow to a terabyte in size.

Is a project of this magnitude something that MODx can legitimately support, or would it really push the platform beyond reasonable limits. On a related note, were I to undertake a project like this with MODx, I am presuming that I definitely could NOT rely on just a single MODx site for the entire knowledge base; rather – I would have to create a main MODx portal that provides access to a series of other independent MODx sites.

Also – how many users can MODx reasonably support? In theory, could a MODx site effectively manage as many as 100k users distributed across maybe 50 different user groups?


As far as I’ve seen, MODX performance its really great, from what you are describing I believe it would be more a concern of designing the database server configuration so it can manage those loads in a efficient way, basically a concern for your DBA, and also probably the cache should have some sort storage management to improve loading.

I can also imagine things like extending some of modx class is to have the content stored in something like cassandra and share indexes with MODX to improve load times, but again, in general terms Im still impressed by the great performance ans security of this CMS, the only times I’ve seen it slow, its when Im being doing something really dumb

Hey @marcozoid

@SilverMabol has recently asked a similar question here.

It might be worth following that topic, if you’re not already.

Good luck!

For better performance, I’d recommend using PDO for this, rather than xPDO. It’s easy to do, since $modx is actually an instance of PDO. See the examples here.

I’d also strongly recommend a custom database table for the data as described here. The example there is very close to your use case. I am currently re-writing that page because a new version of the ClassExtender extra (not released yet) will make the whole process much simpler. I’m hoping to get both finished soon. If you subscribe at Bob’s Guides, you’ll get an email when the new page is up.