The Challenge
The United Nations Department for General Assembly and Conference Management (UN-DGACM) manages documentation, translation, and indexing across all six official UN languages. Their full-text indexing system, a critical piece of infrastructure serving thousands of documents daily, was built on Windows Communication Foundation (WCF), Microsoft's aging SOAP-based service framework.
The problem: WCF is fundamentally incompatible with modern cloud-native architectures. Long-running indexing tasks were blocking threads, causing timeouts, and resisting horizontal scaling. The team needed REST without taking down a system that supports the operations of 193 member states.
Our Migration Strategy
We used the strangler fig pattern, a proven approach for replacing legacy services incrementally without a risky big-bang cutover.
Phase 1: Parallel REST Endpoints
We stood up new ASP.NET Core REST controllers alongside the existing WCF endpoints. Rather than migrating all callers at once:
- We introduced a thin adapter layer translating WCF service contracts to REST DTOs
- Both endpoints ran in parallel, with a small percentage of traffic routed to the new REST layer first
- Outputs were validated by comparing identical document batches against both layers
Phase 2: Async Task Queue
The biggest WCF pain point was synchronous long-running tasks that held HTTP connections open for minutes. We replaced this with an async queue pattern:
- POST /index-jobs returns a job ID immediately (202 Accepted)
- A background worker picks up the job and processes the document batch
- GET /index-jobs/{'{id}'}/status gives callers a polling endpoint
This eliminated timeouts entirely and made the indexing pipeline horizontally scalable for the first time in its history.
Technical Stack
- Backend: ASP.NET Core 8, C#
- Queue: Azure Service Bus for async task handling
- Auth: Azure AD, existing enterprise SSO kept intact
- Hosting: Azure App Service (same host as WCF, minimizing infrastructure change)
Result
The migration completed with zero downtime. Indexing throughput improved by 3× due to parallelism that WCF's threading model prevented. Roman Boyko, the project lead, noted that FriendsBit "showed professional knowledge in software development" throughout the engagement.
The new REST layer is now the foundation for UN-DGACM's planned API-first modernization roadmap.
Key Takeaway
Enterprise migrations don't require downtime windows. The strangler fig pattern, combined with output parity validation, lets you replace legacy infrastructure incrementally, so business operations never pause while the technical debt disappears underneath them.