Skip to content

Architecture

SoftSys Edu Analytics is a multi-tenant learning analytics stack for Moodle. The local_ssea plugin captures activity, Workers ingest and process events into D1, and scheduled jobs write report artifacts to R2 plus KV snapshots. The SPA (ssea-dashboard) and the plugin are read-only views on that layer.

PieceRole
Moodle pluginEvents + dimension sync, JWT with role
ssea-ingestEdge ingestion
Queue + ssea-processorDedup, D1 upserts
ssea-report-workerHourly jobs → JSON/CSV in R2 + KV snapshots
ssea-apiAuthenticated REST, tenant isolation, role middleware
ssea-dashboardReact console (Cloudflare Pages)
  1. Moodle sends events and sync tasks to ingest.
  2. Processor updates facts and dimensions in D1.
  3. Report worker materialises aggregates to R2/KV.
  4. Dashboard and plugin consume precomputed reads only.

See Data flow for a step-by-step narrative.