ModernizationHealthcare TechnologyRepresentative project

Legacy Application Modernization

Incremental modernization of BrightPath's decade-old scheduling system without disrupting active clinic operations.

Customer: BrightPath (demo)

Read the full case study

BrightPath's patient scheduling system had been running unchanged for over a decade, built on a stack their team could no longer confidently modify. We led an incremental modernization effort that extracted and rebuilt functionality piece by piece, without a disruptive migration event.

Challenge

BrightPath's scheduling system was business-critical, poorly documented, and built on aging technology that made hiring and retaining engineers difficult. A full rewrite carried significant risk of disrupting active clinic operations across BrightPath's care network.

Solution

We approached modernization incrementally: building a comprehensive test suite around the existing system's actual behavior first, then extracting well-defined functionality — starting with appointment booking logic — behind a stable API, and migrating callers to the new implementation gradually using the strangler pattern. The legacy system kept running throughout, with functionality moving over piece by piece as each extraction was verified against the behavioral test suite.

Architecture

A behavioral test suite was built against the legacy system's real outputs before any code changed, providing a safety net for the migration. New functionality was implemented in a modern stack behind a stable API contract matching the legacy system's external behavior, with a routing layer directing traffic to either the legacy or modernized implementation per feature as each was completed and verified.

Key features

Behavior-preserving test suite

Built against actual legacy system behavior before any modernization began.

Incremental extraction

Functionality moved to the modern stack piece by piece, not in one cutover.

Stable API contract

New implementation matches legacy external behavior, so callers don't need to change.

Zero-downtime migration

Clinic operations continued uninterrupted throughout the modernization.

Integrations

Existing patient records system

Modernized components maintain the same integration contract as the legacy system.

Clinic scheduling workflows

No disruption to staff-facing scheduling tools during migration.

Representative outcomes

No disruption to clinic operations

The migration was invisible to day-to-day scheduling activity.

Improved development velocity

The team can now confidently modify scheduling logic that was previously considered too risky to touch.

Reduced key-person risk

Modernized components are documented and understood by more than one engineer.

Technologies

TypeScriptNode.jsPostgreSQLDocker

Have a similar project in mind?

We're glad to talk through the approach, even before you're ready to commit.