What we are trying to accomplish is an "Enterprise" version of moodle(with Elis) that will allow for separation of agencies. For example if a user from agency1 logs in they will only have access to agency1's courses and users while being unaware that the system supports other agencies. If this was all we were seeking to accomplish, using multiple virtalhosts and config.php files would be sufficient, however there is another catch.
While agency1 is unable to see agencies 2 - 4, they may wish to create a course that must be completed by ALL agencies. If we went with the multiple virtualhosts and config.php files we would still be running individual databases to store the information for each agency, therefore there would be no cross functionality for users. A user would need to be registered on each moodle installation to be able to take courses assigned by that particular agency.
It sounds like what we are needing is a single installation that breaks the different agencies up into "UserSets" where there is a centralized database that all of the agencies are using. This is where Remote Learner's ELIS plugin is said to excel. It gives the administrator the ability to create multiple usersets and then lock specific users down to these usersets. Users within a userset then operate unaware that there are other agencies using the same system.
From what I can gather Elis should work to solve this case if we included a "global" userset that every agency would have access to to push out global classes to all of the users of the system while keeping their agency specific courses hidden. What concerns me however about Elis is the scalability. Once the system grows to several thousand users, I can see the single moodle database becoming so slow it would be almost unusable. Therefore I am leery about using Elis on a large scale.
Would anyone have any ideas about how to handle this situation? Am I being paranoid about using Elis? At this point any feedback would be great, even if it's "OMG Don't do that!".