🖼️ 그림 0. (히어로) 미션 크리티컬 음성 서비스를 떠받치는 액터들 — 카툰 히어로 이미지

🇺🇸 English version — Read this article in English: Never Drop a Single Call — How Luware Protects Mission-Critical Voice Services with Akka.NET Actors

🎯 3줄 요약

들어가며 — 전화 한 통이 끊기면 안 되는 세계

여러분이 콜센터에 전화를 걸었다고 해보자. 상담사 연결, 대기열, 전환(transfer), 녹취, 통화 분석이 밀리초 단위로 맞물려 돌아간다. 여기서 타이밍이 한 번 어긋나면? 통화가 끊긴다. 고객은 화를 내고, 기업은 신뢰를 잃는다.

스위스 회사 Luware가 만드는 Nimbus가 바로 이 세계에 산다. Nimbus는 Microsoft Teams에 통합되는 컨택센터 소프트웨어로,

이 글은 Petabridge가 공개한 Luware 사례 연구를 바탕으로, Luware가 어떤 벽에 부딪혔고 **Akka.NET 액터 모델**로 어떻게 그 벽을 넘었는지를 개발자 눈높이에서 풀어낸다. 액터가 처음인 분도 따라올 수 있게 개념부터 차근차근 짚는다.


1. 문제 — "분산 락 지옥에 빠진다"

처음에 Luware는 통화 상태(state)를 여러 stateless 마이크로서비스에 나눠서 관리했다. 통화 한 건의 정보가 서비스 A에도, B에도, 캐시에도 흩어져 있는 구조다. 문제는 여기서 시작된다.

🖼️ 그림 1. 분산 락 지옥 vs 액터 — 같은 통화 상태를 여러 서비스가 동시에 만지는 혼돈 / 액터 하나가 통화를 통째로 소유하는 질서

Luware의 엔지니어 Jason Shave의 말이 이 상황을 정확히 요약한다.