Bulk Communication
Overview
Bulk Communication covers the tools instructors use to send messages to enrolled learners at scale — course announcements, email campaigns, deadline reminders, and scheduled messages. This is primarily an email channel, though the `edx-ace` framework supports additional channels.
The modern bulk communication experience is delivered by `frontend-app-communications`, a dedicated MFE replacing the legacy email form in the instructor dashboard.
Current State (2026)
• Bulk email MFE: `frontend-app-communications` provides a rich compose interface with learner targeting
• Targeting: Instructors can send to all enrolled learners, specific cohorts, specific enrollment modes (e.g., verified only), or learners meeting completion criteria
• Scheduling: Emails can be scheduled for future delivery
• `edx-ace`: The Async Communication Engine provides channel abstraction (email, push, SMS) and templating
• Backend: Bulk email backend in `edx-platform` uses Celery for async delivery; configured with SMTP or transactional email providers
Architecture
• Frontend: `frontend-app-communications` sends compose/schedule requests to `edx-platform` APIs
• Backend: `edx-platform` `bulk_email/` module manages email tasks; `edx-ace` provides channel routing and templating
• Celery delivery: Each email sent as an individual Celery task; throttled to avoid overwhelming email providers
• Targeting logic: Learner queries run at send time against enrollment and cohort tables
• Bounce handling: Opt-out/unsubscribe handled by `edx-ace`; learners can opt out of instructor emails
History
Origin
• Year introduced: ~2013–2014 (instructor email launched early in edX)
• Initial implementation: Simple email form in instructor dashboard; Celery tasks for bulk delivery
• Context: At MOOC scale, instructors needed to communicate with thousands of learners simultaneously; regular email clients were not practical
Key Milestones
Basic bulk email from instructor dashboard
`edx-ace` Async Communication Engine introduced
`frontend-app-communications` MFE development
Open Questions
- ?What was the original instructor email system design?
- ?Why was `edx-ace` built as a separate library rather than using an off-the-shelf email framework?
- ?What email providers are typically used in production Open edX deployments?
- ?What are the targeting criteria that instructors most commonly use?
- ?What drove the decision to build a dedicated communications MFE?