Ch. 4 Scalability We talked briefly on one phone call about: "Will OpenMRS scale to a national level?" In our internal INPC discussions, we wonder: Do we have the horsepower to process 100 hospitals in Indiana? The trick I always rely on is the following: I can process data from "St Vincent" in parallel with "St Francis", and that in parallel with "Community".... That is, if one HL7 processor cannot handle the job, then I'll use one per institution. In addition to cross-institution scaling, at one point we had a three month backlog of "Clarian" messages to process, so we set up 10 HL7 processors, and did a "mod 10" of the MRN, and had each processor handle "those patients with MRN's ending with digit %D" -- that we one patients data did not get out of order. In the OHIE context, this suggests: Suppose we mod-10'ed the MRN's of a country, and had 10 OpenMRS installations running. Each particular OpenMRS system would only handle 1/10th the load. Any particular patient would be in exactly one OpenMRS system. Within the Edge node to Central Repository architecture, the edge nodes won't really know or care how many internal OpenMRS's the central system is using. At worst, the "edge router" that accepts incoming results will have to bear the full traffic, but it will just fork each message out to the "owning" OpenMRS database. So, I claim that we should plan on using some form of Mod10 horizontal scaling, and not worry about overloading one OpenMRS system. In the meantime, I've very curious to see how this breaks down. That is, under what cases *can we not* do Mod10 scaling? Under this thinking, I'm not too worried about "How well does OpenMRS scale." I'll just line them up in parallel.