Components — MIT Learn
Generated 2026-06-24 13:33 UTC · c4gen dev
The innermost view: the components inside containers that have been expanded to C4 Component level — the major code groupings within a deployable unit and how they collaborate and reach out to adjacent containers and systems.
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.
Django Web API
REST API, auth, search orchestration, admin, webhooks, vector-search endpoints.
| Component | Technology | Responsibility |
|---|---|---|
| Learning Resources API | Django REST Framework viewsets | Serves resources, learning paths, user lists, and channels over REST; the surface Next.js and peer services call. |
| Auth & Sessions | django-allauth / DRF auth | Validates APISIX/Keycloak-issued sessions and API tokens, resolves the request user, and enforces object permissions. |
| Search Orchestration | opensearch-dsl + vector-search service | Builds full-text queries, blends keyword and vector (semantic) results, and hydrates hits from Postgres. |
| Content Webhook Handlers | DRF views (HMAC-verified) | Receives HMAC-signed content-ingest webhooks from the data platform and hands work to the ETL trigger layer. |
| Task / ETL Trigger | Celery .delay() producers | Enqueues ETL, indexing, and embedding tasks onto the broker for the Celery workers to consume asynchronously. |