dograh/api/services/campaign
Abhishek fe4ea648e4
Feat/campaign enhancements (#163)
* feat: add circuit breaker to safeguard

* feat: Add Circuit breaker in campaigns to safeguard against telephony failures

* feat: add schedules in campaigns
2026-02-17 21:04:15 +05:30
..
sources feat: limit campaign concurrency to number of CLIs 2026-02-07 13:45:21 +05:30
__init__.py Initial Commit 🚀 🚀 2025-09-09 14:37:32 +05:30
campaign_call_dispatcher.py feat: limit campaign concurrency to number of CLIs 2026-02-07 13:45:21 +05:30
campaign_event_protocol.py Feat/campaign enhancements (#163) 2026-02-17 21:04:15 +05:30
campaign_event_publisher.py Feat/campaign enhancements (#163) 2026-02-17 21:04:15 +05:30
campaign_orchestrator.py Feat/campaign enhancements (#163) 2026-02-17 21:04:15 +05:30
circuit_breaker.py Feat/campaign enhancements (#163) 2026-02-17 21:04:15 +05:30
errors.py feat: limit campaign concurrency to number of CLIs 2026-02-07 13:45:21 +05:30
rate_limiter.py feat: limit campaign concurrency to number of CLIs 2026-02-07 13:45:21 +05:30
readme.md fix: make campaign process batch thread safe (#141) 2026-01-30 14:48:00 +05:30
runner.py Feat/campaign enhancements (#163) 2026-02-17 21:04:15 +05:30
source_sync.py feat: limit campaign concurrency to number of CLIs 2026-02-07 13:45:21 +05:30
source_sync_factory.py feat: add csv upload functionality for OSS (#29) 2025-10-09 17:54:31 +05:30

campaign_orchestrator.py (CampaignOrchestrator)

  • Listens to retry events, batch completed event, sync completed events from redis pubsub, and schedules batches
  • Monitors stale campaigns and schedules batches if one is not already scheduled
  • Marks campaign as completed if no more tasks pending

runner.py (CampaignRunnerService)

  • Service layer to handle router requests, like run campaign, pause campaign, resume campaign, get campaign status etc.

call_dispatcher.py (CampaignCallDispatcher)

  • Ensures rate limit and concurrency limits and dispatches call using telephony provider

campaign_tasks.py

  • sync campaign from source
  • process campaign batch