-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
Context
CCX creation is a significant lifecycle event that often requires integration with external systems or platform-specific workflows.
Today, edx-platform does not expose a clear, dedicated signal that indicates when a CCX has been created.
Problem statement
Currently, there is no first-class signal emitted specifically for CCX creation. As a result:
Integrations must rely on:
-
Ad-hoc hooks
-
Overloaded signals
-
Or duplicating logic across multiple code paths
There is no consistent or reliable way to react to CCX creation across:
-
Extensions
-
Plugins
-
External services
This makes CCX lifecycle integrations brittle and difficult to maintain.
Proposal
Introduce a dedicated signal that is emitted when a CCX is successfully created.
The signal should:
- Fire exactly once per CCX creation
Be emitted from a single, canonical location in the CCX creation flow
This would allow extensions and plugins to reliably subscribe to CCX creation events without duplicating logic.
Why this is viable
-
Low risk: signals are passive and do not alter core behavior
-
Backward compatible: no existing functionality is removed
-
Extensible: enables integrations without hardcoding platform-specific logic
-
Aligns with existing patterns: edx-platform already uses signals for other course lifecycle events
Additional context
A draft implementation has been proposed in:
#37897