Shock Migration: Major Bank Ditches Java for C++ — Year-End Results

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

Major Bank Switched from Java to C++: Results After One Year

In early 2021, one of Russia's systemically important banks (sources name Alfa-Bank) made a radical decision: replace the core of its high-load transaction system, written in Java, with native C++ code. A year after the migration was completed, management shared the first results. The numbers are impressive.

According to an internal report, the performance of critical services increased by 40–60%. The average processing time for a single transaction (P99) dropped from 12 ms to 4.5 ms. The main reason cited is the abandonment of the Java Virtual Machine (JVM) and the garbage collector, which caused "lags" of up to 200 ms during peak loads. "With C++, we got deterministic memory management — this allowed us to eliminate 90% of latency issues during peak hours," the press service quoted the technical director of the development department.

However, the transition was not easy. Out of 120 developers on the team, 35 resigned, unwilling to retrain. The bank had to hire 50 C++ engineers from the fintech and gamedev markets, with average salaries increasing by 25%. The migration took 14 months and about 2.3 billion rubles (including code rewriting, testing, and debugging).

Economic effect: operational costs for infrastructure decreased by 30% — 40% fewer servers were needed to handle the same volume of transactions. The project's payback is expected in 2.5 years. "We are not going to rewrite everything. The frontend and mobile applications remain on Java/Kotlin. But the core — only native code," added a bank representative at the HighLoad++ 2022 conference.

Experts are divided. Some believe that for high-frequency trading and calculations, C++ is justified. Others remind of the risks: memory leaks and the complexity of maintaining legacy code. "Java is a compromise between development speed and performance. The bank chose execution speed at the cost of development speed. Let's see what happens in 5 years," comments a leading analyst at TAdviser.

Nevertheless, other market players are already studying the case. According to rumors, Sberbank and VTB have also launched pilot projects to migrate certain microservices to C++ and Rust.

Recommended Libraries