Containers — MIT Learn
Generated 2026-06-24 13:33 UTC · c4gen dev
The runtime/deployable units inside MIT Learn and how data moves between them and adjacent systems.
Containers
| Container | Technology | Responsibility |
|---|---|---|
| Next.js Frontend | Next.js App Router / React (Node 22) | Server-rendered UI. Calls the API both server-side (SSR/RSC prefetch) and from the browser via NEXT_PUBLIC_MITOL_API_BASE_URL. |
| Nginx | Nginx | Reverse proxy in front of Django; serves static assets. |
| Django Web API | Django + DRF (Granian/uWSGI, Python 3.12) | REST API, auth, search orchestration, admin, webhooks, vector-search endpoints. |
| Celery — edx_content queue | Celery worker | ETL ingestion of course/resource metadata and content files from providers. |
| Celery — default queue | Celery worker | Search indexing, subscription-digest email, feeds/scrapes, housekeeping. |
| Celery — embeddings queue | Celery worker | Generates vector embeddings for semantic/vector search. |
| Celery Beat (RedBeat) | RedBeat (Redis-backed) | Schedules periodic ETL, indexing, and embedding tasks. Runs embedded in the worker (-B) locally; split out in production. |
| PostgreSQL | PostgreSQL 16 (RDS in prod) | System of record for resources, users, lists, and editorial data. |
| Redis / Valkey | Redis 8 (ElastiCache Valkey in prod) | Django cache, Celery broker/result backend, and RedBeat schedule store. |
| OpenSearch | OpenSearch | Full-text search index over learning resources (alias-swapped reindex). |
| Apache Tika | Tika 2.5 (sidecar) | Extracts text from documents/content for indexing and embeddings. |
| S3 App Storage | AWS S3 | File/media storage for app assets and ETL artifacts. |