Data Flows — xPRO Open edX
Generated 2026-06-24 17:02 UTC · c4gen dev
Each scenario below replays one interaction as a C4 Dynamic diagram. Amber steps are asynchronous (queued / scheduled / event-driven).
How to read these diagrams
These are C4 model diagrams (C4-PlantUML). Read them top-down: System Context (the whole SOA) → Container (one system's runtime units) → Dynamic (a single data flow, step by step).
- People are rounded boxes; systems and containers are rectangles; databases and queues have distinct shapes.
- Each arrow is a data flow labelled with what moves.
- Solid arrows are synchronous (request/response, caller blocks).
- Amber dashed arrows are asynchronous (queued, scheduled, or event-driven — caller does not block).
- Drag to pan, scroll to zoom. Boxes with a link drill into the next level.
Learner takes a course (synchronous)
A learner works through courseware in the LMS. The LMS loads course structure from the modulestore (MongoDB), reads/writes state in MySQL, proxies forum activity to the comments service, and stores annotations in the Notes API.
Course authoring & publish (synchronous + async)
An author edits a course in Studio. Studio writes structure to the modulestore, stores uploaded assets and (on demand) course export archives to S3, and indexes content into edx-search.
xPRO SSO & user provisioning (synchronous)
xPRO authenticates learners through this Open edX deployment via social-auth (ol-oauth2). On first login/signup xPRO creates the corresponding edX user and an OpenEdxApiAuth access token, used later for enrollment and grade reads.
xPRO enrollment, grade & run sync (cross-service, mixed)
xPRO enrolls learners in the LMS on order fulfillment and, on a daily cron, repairs failed enrollments/faulty users and pulls grades and course-run data (titles/dates) from this deployment to generate certificates.
Ingestion sources (ETL)
Every external source the edx_content / default Celery workers pull from, with transport and cadence. ⚠️ marks brittle linkages (HTML/token scrapes, hardcoded URLs).
| Source | Transport | Cadence | Data | Source of truth |
|---|---|---|---|---|
| MITx Pro (grades/course-run API consumer) | REST (edx-api-client) | daily cron | grades + course-run data | courses/tasks.py |