← all systems

multi-tenant rag platform

Aether

A multi-tenant knowledge platform built around a reliable RAG engine, with strict tenant isolation and traced async ingestion.

role
Sole designer and engineer
year
2026
status
personal
stack
TypeScript · Fastify · PostgreSQL · Qdrant · BullMQ · OpenTelemetry

Context

Most RAG demos ignore what a real deployment needs: tenants that cannot see each other’s data, ingestion that survives failures, and enough observability to explain a bad answer.

What I built

Aether is a multi-tenant semantic knowledge platform:

  • Tenancy. Better Auth organisations are the tenants, with invitations and roles.
  • Ingestion. Uploads go to MinIO and are processed asynchronously by a BullMQ worker on Redis; embeddings are stored in Qdrant.
  • Answers. The Ask flow streams a grounded answer with expandable citations (document, chunk, score, confidence), keeps follow-ups in context, and refuses explicitly when the organisation’s documents do not support an answer.
  • Observability. OpenTelemetry and Pino across the API and worker.
  • Local by default. Embeddings and chat run on Ollama in Docker, so data stays on the host.

Stack: TypeScript, Fastify, PostgreSQL with Drizzle, Qdrant, Redis + BullMQ, MinIO, OpenTelemetry, Docker Compose, and a React + Vite console.