Project Summary
Envolve PeopleCare, Segmentation Engine
Envolve PeopleCare
Practice Area
Analytics & Data Management

Quoin was responsible for the design and implementation of a Segmentation Engine to drive the presentation of personalized health care offers. Our team built a Big Data solution using an innovative architecture based on Scala, Apache Storm, Spark, and HBase.

Envolve PeopleCare (previously LiveHealthier) is a global provider of corporate wellness solutions for companies that encourage employees to lead happier, healthier, and better-balanced lives. To support our client's core products and services, Quoin developed a highly available, fast, and scalable system to assign individuals to 'segments'. These segments – used to characterize health, lifestyle, and behavioral aspects of an individual – drive targeted offers for health-related discounts or incentives. For example, these offers might consist of a cessation program for a smoker who completed an online Health Risk Assessment.

Our project team designed and implemented the Segmentation Engine for this offering process. Our team recommended the architecture, advised the client on a hosting solution, built the engine using test-driven development techniques, and set up both the production and quality assurance environments. The solution was engineered to scale in future phases to process large volumes of data from other sources in addition to the online assessment.

Segmentation Engine Lambda Architecture
We used a Lambda Architecture as shown in this figure to support real-time processing, batch processing, and analytics serving. The segmentation engine ingests attribute data from a range of sources via a message queue (Rabbit MQ), including health risk assessments, claims, clickstream, and other data. The system applies a set of business rules to determine the applicable segments (Apache Storm and Scala-based rules). The resulting segments are stored as part of the individual profile (HBase). The segments and other analytics are made available via a Web Services API to the Product Delivery Engine and other future consumers of this data. The system architecture also supports batch processing of the attribute data that implements a basic machine learning process to improve segmentation results (Apache Spark). To synchronize the processes that produce and consume segments and other analytics, the system architecture uses a controller (Apache Zookeeper) to avoid conflicts.

In Phase 2 of the Segmentation Engine project, our team implemented a domain-specific language in a human-readable format with standard Boolean operators. This enhancement improved the ability to change the business rules without halting the production environment. We also added to the batch processing capabilities, including support for claims, clickstream, location, campaign-specific, and channel data. Quoin is currently supporting ongoing operations and enhancements to this critical system for Envolve PeopleCare.