Skip to content

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.