Telco · Client · 2024 — now
Replacing a telco's order management while it keeps taking orders
I lead the teams replacing a legacy B2B ordering system with .NET microservices, one service line at a time, while the old system keeps running.
- 2
- teams led, new platform and legacy
- 10+
- engineers
- 0
- disrupted live order flows
Context
A telecom operator takes its business orders on a legacy Conceptwave system. An order crosses many downstream systems, change windows are regulated, and the business can't stop selling while the platform under it is replaced. So the move happens one service line at a time, over several years, until the old system can be switched off.
I lead both teams: the one building the new platform, and the one keeping the legacy system running until then.
The path of an order
The new platform covers the whole flow, modeled on TM Forum's Open APIs.
An order, end to end
The platform
People
Order entry
User tasks
Catalog screens
Operations screens
Entry
API gateway
Services
Shared foundation
Order management
Product catalog
Business rules
Utility
Engines
Camunda 8 client
Kafka
PostgreSQL
Around it
Legacy system, synced both ways
Downstream systems, answering by callback
What I built myself
- The foundation. The repository, the layout every service follows, the shared library for logging, cache invalidation and background jobs, the API gateway, and the .NET Aspire setup that runs the whole system on a laptop with one command.
- Logging that doesn't slow requests down. Logs go to Kafka and are written to the database in batches.
- Cache invalidation as an event. When a service changes cached data, every pod drops its copy.
- A thin gateway. It routes to modules and nothing else. Authentication stayed where it was during the transition, so we didn't have to rebuild security before shipping anything.
- The Camunda 8 client layer the platform uses for processes, messages, user tasks, incidents and deployments.
- The user task framework: one pipeline and one form renderer for hundreds of human steps.
How we work
Both teams follow the same templates, code review, unit testing and quality standards, on the new platform and on the legacy side. I review the work and mentor the developers on both teams.
Outcome
Each service line moves on its own, with both systems running side by side until it does. Cut-overs have shipped on schedule without disrupting live orders, and every new service line starts from the same foundation instead of from scratch.