> Markdown version of [/videos/100176-net-is-too-slow-was-not-an-option](https://www.wearedevelopers.com/videos/100176-net-is-too-slow-was-not-an-option). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # ".Net is too slow" was not an option .NET isn't too slow for core banking if you architect it right. Discover how engineers used massive parallelization to execute legacy mainframe COBOL verbatim under 80 milliseconds. - **Speakers:** [Tomasz Woznica](https://www.wearedevelopers.com/@tomasz-woznica) - **Event:** World Congress 2026 Europe - **Published:** July 9, 2026 - **Duration:** 26:13 - **URL:** https://www.wearedevelopers.com/videos/100176-net-is-too-slow-was-not-an-option ## Summary Migrating mBank’s Altamira core banking system from an IBM mainframe to a distributed .NET environment presented a unique performance challenge: maintaining strict service level agreements while executing original COBOL source code verbatim. In the legacy architecture, end-user queries resolved in just 4 milliseconds despite executing over 200 database calls, turning distributed network latency into a critical bottleneck. Initial sequential workflows and chatty database access rendered the .NET architecture thousands of times slower, immediately threatening the strictly regulated 6-hour End of Day batch processing window. Rather than fighting latency or heavily rewriting code, engineers built an event-driven runtime orchestrating massive parallelization entirely transparently. By leveraging COBOL comments as functional runtime annotations, the identical codebase executes on both the legacy mainframe and modern .NET platform. To accelerate SQL cursor operations, the architecture relies on database session contexts, binary checksums, and modulo functions to evaluate partition keys and route processing into highly concurrent subtasks. Handling massive data pipelines similarly required avoiding physical file chunking by applying virtual splitting and virtual merging. Concurrent threads utilize calculated file offsets and metadata pointers to stream and compile parallel blocks without the heavy overhead of repetitive disk manipulation. Rethinking functional data interactions ultimately finalized the structural replatforming success. The new architecture bypassed distributed transactions and traditional message queuing altogether by adopting the outbox pattern directly at the data state level. Furthermore, engineering a custom ORM to pre-fetch and aggressively cache operations successfully eliminated the remaining high-frequency request lag. Delivering average dynamic response times under 80 milliseconds and completing batch workflows in under four hours, this legacy modernization now supports over 12 million customers and prepares the financial infrastructure for highly scalable, intelligent cloud operations. **Keywords:** legacy replatforming strategy, mainframe to .NET migration, COBOL code modernization, distributed network latency, event-driven execution runtime, SQL cursor parallelization, virtual file splitting, virtual file merging, outbox architecture pattern, custom ORM caching, end of day batch processing, core banking system, legacy code orchestration, session context partitioning, binary checksum hashing ## Chapters 1. **Mainframe performance baseline and distributed computing challenges** (00:33) — Migrating a legacy COBOL system processing hundreds of database operations per request reveals severe network latency disparities compared to single-machine environments. 1. **Meeting service level agreements for batch processing** (03:29) — Complex end-of-day processes must execute entirely within a rigorous six-hour overnight window to consistently handle interbank transfers and system reconciliation. 1. **Addressing distributed database latency in driving cursors** (04:56) — Transitioning highly tuned database query architectures exposes extreme latency bottlenecks when repetitive cursor data trips over a network wire. 1. **Using session context for database workload orchestration** (07:23) — Passing concurrency range targets through database connection context variables limits queried batch sizes without mutating original core data retrieval signatures. 1. **Transparent query parallelization via source code annotations** (09:40) — Embedding control parameters securely inside compiler-ignored syntactical comments dynamically manages range partitions transparently avoiding original system logic alterations. 1. **Creating an event-driven task runner for parallel executions** (11:59) — Providing offset metadata allows a runtime application loop to spawn identical isolated processes against concurrent chunk segments to drastically reduce duration. 1. **Strategies for splitting flat files in distributed systems** (13:08) — Dividing large text batches into simultaneous streams requires properly aligning root rows precisely against supporting document files maintaining correct business relationships. 1. **Implementing virtual file splitting to minimize network overhead** (15:41) — Calculating precise byte skip instructions over a single network document avoids incredibly expensive temporary file duplication penalties transferring data. 1. **Optimizing flat file joins using network metadata pointers** (17:30) — Preserving resulting task array origins identically inside small referencing maps bypasses incredibly long waits inherently associated with physically appending outputs sequentially. 1. **Building a custom ORM to eliminate distributed transactions** (19:49) — Pre-fetching comprehensive contextual data mappings into transient machine-level memory prevents ongoing query repetition completely overcoming communication protocol latency limits. 1. **Final production metrics utilizing alternative compiler technology** (21:54) — Modernizing away from mainframe architecture empowers extensive transaction volume surges globally serviced quickly using entirely modern off-the-shelf distributed frameworks. ## Related Moments - [Evaluating the execution speed of legacy tech stacks](https://www.wearedevelopers.com/videos/551-fireside-chat-with-lea) (from "Fireside Chat with Lea") - [Modernizing legacy execution and outdated mainframes](https://www.wearedevelopers.com/videos/559-an-architect-s-guide-to-reducing-the-carbon-footprint-of-your-applications) (from "An Architect’s guide to reducing the carbon footprint of your applications") - [Modernizing legacy COBOL mainframe systems using AI agents](https://www.wearedevelopers.com/videos/1365-wearedevelopers-live-the-weekly-developer-show-with-chris-heilmann-and-daniel-cranney) (from " WeAreDevelopers LIVE - the weekly developer show with Chris Heilmann and Daniel Cranney") - [Analyzing COBOL mainframe migration challenges with AI](https://www.wearedevelopers.com/videos/100320-when-agents-meet-legacy-never-change-a-running-system) (from "When Agents Meet Legacy: Never Change a Running System") - [Multi-agent AI for migrating legacy COBOL to Java](https://www.wearedevelopers.com/videos/1531-migrating-from-cobol-with-ai-a-moonshot-demo) (from "Migrating from COBOL with AI: A Moonshot Demo") - [Solving architectural challenges during rapid public cloud migrations](https://www.wearedevelopers.com/videos/238-the-journey-from-developer-to-devops-what-i-ve-learnt-along-the-way) (from "The journey from developer to devops - what i've learnt along the way") ## Related Articles - [Making Data Warehouses Fast: A Developer’s Story](https://www.wearedevelopers.com/magazine/107-making-data-warehouses-fast-a-developer-s-story) - [Why Event-Driven Architecture Isn’t About Speed (and When You Actually Need It)](https://www.wearedevelopers.com/magazine/745-why-event-driven-architecture-isn-t-about-speed-and-when-you-actually-need-it) - [MLops – Deploying, Maintaining And Evolving Machine Learning Models in Production](https://www.wearedevelopers.com/magazine/115-mlops-deploying-maintaining-and-evolving-machine-learning-models-in-production) - [Data Science & more: The Lopez dilemma](https://www.wearedevelopers.com/magazine/10-data-science-more-the-lopez-dilemma) ## Related Jobs - [Senior System Engineer - Schwerpunkt Netzwerk Mainframe](https://www.wearedevelopers.com/jobs/ext/1414704-senior-system-engineer-schwerpunkt-netzwerk-mainframe) at **BWI GmbH** - [Senior System Engineer - Schwerpunkt Netzwerk Mainframe](https://www.wearedevelopers.com/jobs/ext/1418079-senior-system-engineer-schwerpunkt-netzwerk-mainframe) at **BWI GmbH** - [Senior System Engineer - Schwerpunkt Netzwerk Mainframe](https://www.wearedevelopers.com/jobs/ext/1665386-senior-system-engineer-schwerpunkt-netzwerk-mainframe) at **BWI GmbH** - [Senior System Engineer - Schwerpunkt Netzwerk Mainframe](https://www.wearedevelopers.com/jobs/ext/1420231-senior-system-engineer-schwerpunkt-netzwerk-mainframe) at **BWI GmbH** - [Senior System Engineer - Schwerpunkt Netzwerk Mainframe](https://www.wearedevelopers.com/jobs/ext/1420336-senior-system-engineer-schwerpunkt-netzwerk-mainframe) at **BWI GmbH** - [Senior System Engineer - Schwerpunkt Netzwerk Mainframe](https://www.wearedevelopers.com/jobs/ext/1417772-senior-system-engineer-schwerpunkt-netzwerk-mainframe) at **BWI GmbH**