Skip to content

MITx Online — Architecture & Data Flows

Generated 2026-06-24 16:33 UTC · c4gen dev

MITx Online is MIT's platform for managing online courses, programs, and paid enrollments. A Django/DRF backend exposes versioned REST APIs (v1/v2/v3) for courses, programs, and enrollments, runs ecommerce (basket/order state machine with CyberSource), B2B contract provisioning, flexible (income-based) pricing, and certificate generation. Wagtail powers the marketing CMS. Course delivery is handed off to Open edX (enrollments and users pushed out; grades and certificates pulled/received via webhooks). React frontends (a public SPA and a Refine staff dashboard) are served as webpack bundles by Django. Celery workers handle edX sync, certificate generation, HubSpot CRM sync, Keycloak org reconciliation, and Google Sheets refund/deferral processing. As a SOA peer, MITx Online's catalog is pulled by MIT Learn every 6h and its HTTP surface is proxied by the shared APISIX gateway under /mitxonline/*.

This is a C4 view of MITx Online within the MIT Open Learning SOA, focused on how data is created and propagated — synchronous request paths and asynchronous (queued, scheduled, event-driven) flows alike. Use it for onboarding and as a holistic reference when realigning flows or hunting harmful cycles and fragile linkages.

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.

Contents

  1. System Context — MITx Online and the systems it exchanges data with.
  2. Containers — the runtime units inside MITx Online.
  3. Data Flows — key interactions, step by step (sync & async).
  4. Dependencies & Cycles — graph-derived coupling, cycles, fragile links.

Keeping this current

These pages are generated from a structured model by architecture_maps/c4gen. The cross-service edges are extracted deterministically from the witan-code graph; node prose and scenarios are curated. See the generator README to regenerate after the system changes.