Scale and Reliability

Our architecture is highly scaled and fault tolerant, from the top to bottom. The system architecture features high throughput, auto-scaling, robust data storage, load balancing, redundancy, modular design, and open standards, ensuring scalability and integration of new technologies. Across our clients today, Outcome is responsible for real-time processing of 600M HL7 and 100M CCDA messages a year.

Outcome’s platform is architected so that it scales horizontally (it adds or removes processing nodes) in response to changes in data volume and system load. This is accomplished using auto-scale groups in combination with load balancers. Since this allows overall system capacity to increase and decrease in response to changes in load, this architecture creates significant savings for those customers that choose to self-host. In comparison, this flexible solution allows a customer to pay only for what they need, instead of having to design a system based on the maximum capacity that will be needed to handle the largest workload expected.

Auto-scale groups also increase uptime. Using an auto-scale group, new software versions and security patches can be rolled out without noticeable downtime. Once the new version is migrated into an environment’s templates, the auto-scale groups can be reset. This will cause each node to be restarted in sequence, picking up the new software version. Rolling the updates in this manner ensures that there are always active nodes to handle any processing load. The result is a platform that is easy to update without downtime, and without the need for overnight deployments.

System metrics are also gathered on an ongoing basis. Using these metrics, analysis can be done to identify when platform components need to scale vertically by adding resources to specific types of components. This can be accomplished by changing the component template used by the auto-scale groups allowing capacity increases with zero system downtime.

During peak loads such as data migration and backfilling, we have proven sustained ingestion rates of 350 HL7 messages per second and 50 CCDs per second. These throughput rates were achieved by way of top to bottom elastic scalability. Our theoretical limits are far higher in our current architecture.