Scale
2M LOC
A bank PHP estate at multi-million-line scale — too large for partner tribal knowledge alone.
HC3 bank · partner case
A bank PHP estate of 2M lines — spanning PHP 3–era code through modern stacks. Partners use HC3 to extract business logic and transaction flows, get SME-validated output in ~1 month, then run a grounded PHP → Java conversion program.
Based on an anonymized customer engagement. The customer is not named. Metrics reflect that project’s outcomes; results vary by estate.
01 · Primary goal
The estate is not a folder tree to copy into Java. It is decades of rules, edge cases, and invariants buried in PHP. Partners start by extracting what the business actually does — then ask SMEs to validate — before any conversion wave.
02 · Pressure
At 2M LOC, tribal archaeology does not scale. Transaction flows cross modules and shared stores; debt and abandoned dependencies hide conversion risk. Without a trusted map, PHP → Java plans stay slideware.
PHP transaction flow
Java service boundaries · strangler waves
03 · Debt analysis
Conversion without debt posture converts the mess. HC3 surfaces signals partners can act on — freeze, refactor, or rewrite — before Java cutover.
| Debt class | What HC3 surfaces | Partner action |
|---|---|---|
| Technical debt | Deprecated APIs, mixed PHP 3–era patterns beside newer modules, fragile deploy folklore. | Prioritize freeze vs rewrite surfaces before any conversion wave. |
| Code quality | Tight coupling, dead paths, duplicated business rules, thin or missing tests. | Extract invariants first; convert only against verified behavior. |
| Architecture debt | God modules, layering violations, shared-DB coupling, framework archaeology. | Draw service boundaries from real transaction flows — not org charts. |
04 · Stabilize
| Dimension | Before HC3 | With HC3 |
|---|---|---|
| Dependency bot | Transitive / abandoned packages, CVE-prone libs, pin chaos across environments. | Inventory of freeze vs replace candidates before Java cutover sequencing. |
| Modernization blueprint | File-by-file migration guesswork without a trusted map of business logic. | Ordered packages: extract → stabilize → convert → verify with SME gates. |
05 · Roadmap · effort · risk
| Workstream | Effort · risk | HC3 mitigation |
|---|---|---|
| Business logic extraction | Foundation · Missing edge cases in tribal knowledge | HC3 traces + SME validation in ~1 month on the live 2M LOC estate |
| Transaction flow mapping | Foundation · Hidden cross-module blast radius | End-to-end request → effects graphs as conversion units |
| Debt & dependency posture | Stabilize · Converting on unstable libraries | Dependency bot + debt tables drive freeze / replace decisions |
| PHP → Java conversion waves | Convert · Big-bang rewrite without strangler seams | Target architecture roadmap with sequenced Java service boundaries |
06 · PHP → Java
| Dimension | Before HC3 | With HC3 |
|---|---|---|
| Starting point | 2M LOC PHP spanning PHP 3–era through modern stacks; partner archaeology by hand. | Extracted business logic and transaction flows, SME-validated in ~1 month. |
| Planning confidence | Effort and risk guessed from slides and tribal experts. | Blueprint with debt, dependency, effort, and risk tied to live code evidence. |
| Conversion target | Unscoped “move to Java” without service boundaries. | PHP → Java mapping patterns and a strangler roadmap partners can execute. |
07 · Outcomes
Scale
A bank PHP estate at multi-million-line scale — too large for partner tribal knowledge alone.
Validation
From ingested code to SME-validated extraction and blueprint artifacts — not a multi-year discovery program.
Outcome
A grounded conversion blueprint: transaction flows, debt posture, dependency freeze/replace, effort, and risk.
See it on your codebase
30-minute technical walkthrough with an enterprise architect. No slides · a live demo on real code.