claims that "Many large architectures, including enterprise messaging systems, regional data repositories, telehealth solutions, etc. have been created using HAPI FHIR JPA server as a backend. These systems often scale to handle millions of patients and beyond." I'm testing on an auto-scaling cluster with each instance of the JPA server having 1 CPU and 2GB of memory. These instances are together backed by a single managed Postgres database. I start seeing instability after even just a few hundred resources as I import from Synthea transaction bundles for 100 patients.
For 100 total patient bundles, I followed the procedure of ingesting a bundle, receiving a response from the server, waiting 60 seconds for the server to stabilize, then ingesting the next. At the end, I found that only 57 of 100 were successful. I'm going to need to be able to scale to O(millions) of individual FHIR resources, so clearly I need more power behind the system.
For anyone managing millions of patients, can you provide a hint as to the size and type of backing database you use, as well as how much CPU and memory you allocate to each instance of the JPA server? If you can recommend any specific configuration settings that you found important, that would also be helpful.
Thanks!
~Ben