All articles
    Enterprise

    How We Migrated the UN's Legacy WCF Services to REST API Without Downtime

    May 20, 2026 7 min readClient: United Nations (UN-DGACM)
    C#REST APIWCFAzureEnterprise Migration

    Zero Downtime

    Migration

    Roman Boyko

    United Nations (UN-DGACM)

    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.

    K

    Khalil

    Senior Software Engineer & Founder, FriendsBit

    8+ years building enterprise software, API integrations, and cloud systems across healthcare, government, and SaaS. React, Next.js, Go, .NET, React Native, and AWS.

    LinkedIn

    Have a similar challenge?

    We've solved problems like this before. Tell us about your project and we'll get back to you within 24 hours.

    Get in touch

    Related service

    Enterprise Software

    View service