Back to Case Studies
Case Study 01
Parallel Autodialer System
High-concurrency predictive dialer handling 1000+ concurrent calls with sub-second queue latency and async AMD.
Client: US-based debt collection agency Industry: FinTech / Debt Collection Duration: Ongoing
1000+
Concurrent Calls
<1s
Queue Latency
99.9%
Uptime
Async
AMD Processing
The Problem
The client needed a predictive dialer that could handle thousands of concurrent calls with sub-second response times while maintaining compliance with debt collection regulations. The existing system couldn't scale and had high abandoned call rates.
The Solution
- Built high-concurrency autodialer using Golang and NestJS/TypeScript
- Implemented async AMD (Answering Machine Detection) via Twilio — calls connect instantly, voicemail detection runs in background
- Designed waterfall call assignment with Redis + Lua race-to-claim logic — when a human answers, the call routes to the first available agent; other answered calls cascade to the next collector
- Sub-second live queue monitoring for agents showing all 3-5 active dials with real-time status
- Conference-based call bridging — not direct dial. Inbound/outbound calls enter conferences, agents join conferences
- ElevenLabs TTS integration for automated voicemail drops
- Real-time dictation/transcription during calls
Architecture
Twilio → Gateway (2 replicas, routing + TwiML + fallback) ├── Manual Handler (stateless, 1 replica) ├── Inbound Handler (stateless, 1 replica) └── Predictive Handler (stateless, 1 replica) Shared Services: ├── State Service (gRPC) — call state, agent state, Redis ├── Realtime Service — WebSocket, agent connections, event broadcasting └── Task Queue Service (gRPC) — call log persist, recording process, core API sync
Tech Stack
Golang NestJS TypeScript Redis PostgreSQL Firestore Twilio Socket.IO React ElevenLabs
Ready to start?
Let's build something solid.
We take on a limited number of projects to ensure every engagement gets our full engineering focus.
Start a Project