Skip to content

Containers — xPRO Open edX

Generated 2026-06-24 17:02 UTC · c4gen dev

The runtime/deployable units inside xPRO Open edX and how data moves between them and adjacent systems.

Containers

Container Technology Responsibility
LMS (edxapp) Django (lms.djangoapp, Python 3.11, gunicorn) Learner-facing courseware runtime + the REST API surface the xPRO app drives: enrollment (/api/enrollment/v1/, /bulk_enroll/v1/), grades (/api/grades/v1/), certificates, user accounts, and the OAuth2 / third-party-auth provider. Served at courses.xpro.mit.edu.
Studio / CMS Django (cms.djangoapp, Python 3.11) Authoring environment for courses (Studio). Writes course structure to the modulestore and drives course import/export (OLX) and video upload.
OAuth2 / Third-party-auth Provider django-oauth-toolkit + social-auth (in LMS) Identity surface — OAuth2 authorization/token endpoints and the social-auth backend (ol-oauth2) the xPRO app logs in against. Issues the JWTs xPRO uses for enrollment and grade API calls.
Forum (cs_comments_service) Ruby / Sinatra (forum) + MongoDB Discussion service backing course forums; the LMS proxies threads/comments to it.
Notes API (edx-notes-api) Django + Elasticsearch (edx-notes-api) Stores learner annotations/highlights; the LMS edxnotes app reads/writes it.
edx-search / Elasticsearch edx-search + Elasticsearch Courseware and discovery search index; LMS/CMS index course content into it.
Celery Workers Celery (lms + cms workers; queues low/default/high) Async grading, certificate generation, bulk course email, course import/export, and bulk enrollment processing. Brokered by Redis.
MySQL MySQL 8 (RDS in prod) Relational system of record — users, enrollments, grades, certificates, OAuth tokens.
MongoDB MongoDB (modulestore + forum) Course structure/content (split modulestore) and forum threads/comments.
Redis Redis / Valkey (ElastiCache in prod) Celery broker/result backend and Django cache.
S3 Content / Export AWS S3 Course export archives (OLX), uploaded assets, and grade/cert report downloads. The OLX/content archives downstream ETL pulls live here.