Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Campaign Processing System

A backend service for uploading and processing large contact lists asynchronously, with real-time progress tracking and crash-safe resumability.

  • Async CSV ingestion [DONE] - uploads return immediately; a background worker (BullMQ + Redis) streams and processes rows without blocking the request

  • Live progress via WebSockets - clients subscribe to a job ID and get real-time processed/total counts as the worker runs

  • Duplicate prevention - phone numbers are deduped via a unique constraint with atomic upsert, safe under concurrent processing

  • Resume after restart [DONE] - job state and checkpoints persist independently of the worker process, so an interrupted job picks back up without reprocessing or data loss

  • Distributed rate limiter - Redis-backed, atomic request limiting (100 req/user) that works correctly across multiple app instances

About

Async CSV contact processing pipeline with live WebSocket progress, duplicate-safe upserts, and crash-resumable jobs, plus a distributed Redis rate limiter.(mock sms are used as this is for learning)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages