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