Horizontal Scaling

Platform Current

Question: What a marvelous and active community! It’s been fun walking through recent entries, and reviewing the recent release notes.

I don’t see any recent references to horizontally scaling OpenMRS, for larger (millions) of patients, though there seems to have been some conversation about it in 2018. Is there current guidance I’m just not finding on how best to approach very large implementations, or is the architecture still focused on a single instance front end to a single-instance db server on the back end?

Much appreciated,


Hi Paul,

The current architecture would require some changes to support horizontal scaling. We have just talked about it a few times in the threads below and others. Is this something that you would like to contribute towards?

Perhaps! I’d read those threads (and seen your name there) but wasn’t sure if there were more recent conversations I might not have been able to see.

I’m part of a group which is looking at OpenMRS for potentially significant numbers (tens of millions) of encounters with hundreds of data collection end-points. It seems challenging to go that route with a single instance and vertical scaling. While implementation could be regionalized, that would complicate centralized reporting, and obviously have implications for operations…

We’re in our earliest phases of this thoughtwork, though. We’re not yet in a position to contribute meaningfully to such an effort.

Love what’s been done with the Platform so far!


Oh i see!

I completely understand. In the meantime, technical advice in regards to the direction that we should take, is highly welcome. :slight_smile:

Hi @paulnelis

If there needs to be a single OpenMRS instance then you would need JVM clustering, see the dinosaur:

If the challenge is only about central reporting then it’s a very reasonable challenge, and a fairly usual one.