System · Production
Architecture and infrastructure
How the product, domain services, persistence, retrieval, graph projection, and traces fit together.
Responsibility map
The presentation layer owns navigation and interaction. Domain services own authorization and transactional rules. Stateful workflows coordinate tasks that require branching, interruption, retry, or memory.
System responsibility mapPostgres owns canonical learner data. Retrieval, graph, checkpoints, and traces have narrower responsibilities.
Canonical and derived data
- Supabase/Postgres: authentication, canonical records, RLS, checkpoints, operational events, and source metadata.
- Qdrant: dense and sparse retrieval points derived from source chunks.
- Neo4j: derived prerequisite, dependency, contrast, and misconception paths.
- OTLP-compatible collector: safe spans containing IDs, versions, timing, retries, and validation outcomes.
Boundary: A failure in a derived store must reduce retrieval or graph capability without corrupting canonical learner data.
Deployment topology
The Next.js product runs on Vercel. Supabase hosts authentication and canonical data. Qdrant Cloud and Neo4j AuraDB host derived indexes. Inngest coordinates durable background work. Arize AX receives safe OpenTelemetry traces grouped under the Tessarion project.