About the Client
The client is a not-for-profit, integrated health system headquartered in the Midwestern United States. As one of the region’s largest healthcare providers, the organization manages a broad network of hospitals, outpatient clinics, and community health programs. Their internal development teams maintain multiple Java-based applications critical to clinical operations and data analytics.
Overview
This health system partnered with Keyhole Software to evaluate and modernize several aging Java-based enterprise applications. The engagement began with a deep-dive architecture assessment and evolved into hands-on implementation of modernization recommendations, with a focus on performance, resilience, and maintainability.
Part 1: Architecture Assessment & Recommendations
Background
A Keyhole Senior Consultant was embedded with the client’s development team to perform a detailed analysis of critical systems, including custom-built clinical applications and healthcare data infrastructure.
Goals
- Evaluate the software architecture and deployment practices.
- Identify root causes of performance and reliability issues.
- Recommend improvements aligned with the applications’ remaining lifecycle.
Key Findings
- Deployment Complexity: Manual release processes delayed updates and introduced risk during hotfixes.
- Database Downtime: Updates required manual database restarts, creating reliability and coordination challenges.
- Error Propagation: Coupled services caused cascading failures and lacked robust error isolation mechanisms.
Recommendations
- Implement circuit breakers using Netflix Hystrix for fault tolerance.
- Replace native Java serialization with JSON-based serializers.
- Upgrade from JDK 1.6 to 1.8 and evaluate migration to Spring Boot.
- Automate deployments with Jenkins and containerized infrastructure.
- Explore microservices architecture and Spring Batch for scalability.
Level of Effort Estimation Provided
- Circuit breaker implementation: 80 hours
- Serialization upgrade: 120 hours
- JDK & GlassFish upgrade: 40 hours
- Spring Boot integration: 100 hours
- Deployment automation: 120 hours
- Spring Batch pilot: 80 hours
Part 2: Implementation Support
Following the assessment, two Keyhole Software consultants collaborated with the client’s teams to execute key modernization strategies and enhance system stability.
Application Stability & Microservices Transition
One consultant focused on stabilizing legacy clinical applications and guided their gradual decomposition into microservices. Contributions included:
- Integrating Hystrix across services to isolate faults and prevent system-wide outages.
- Piloting modular migration with Spring Boot.
- Implementing Spring Cloud tools like Eureka, Turbine, and Feign for resilient service communication.
- Upgrading from Java 6 to Java 8 and preparing GlassFish 4 deployments using Docker containers.
Collaborative Data Integration (CCMR Project)
The second consultant supported the Collaborative Care Management Resources (CCMR) initiative, which unified patient data from multiple health networks and a national analytics partner. Responsibilities included:
- Designing Java-based ingestion and staging processes for DB2 data and flat files.
- Building Spring Batch jobs for large-scale data processing.
- Helping establish foundational infrastructure for population health analytics.
The CCMR project ultimately integrated data from five healthcare systems and 41 hospitals, enabling improved care coordination across seven states.
Outcomes
- Deployment times and failure rates were significantly reduced.
- Applications became more resilient to backend latency and outages.
- Teams established a foundation for modular growth and faster innovation.
- Enterprise-scale data pipelines were built to support population health initiatives.