Open edX Platform Atlasv1.0
Instructor Experiences

Bulk Communication

Scaffold

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

~2013–2014

Basic bulk email from instructor dashboard

~2017–2018

`edx-ace` Async Communication Engine introduced

~2021–2022

`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?