Overview
The Onyx application is a set of Docker Containers which can be deployed on any infra and for any scale.As an open source project,
Onyx is designed with security and data privacy as a foundational principle so that teams can trust the software even
without needing partnership guarantees.
System Architecture

Core Components
Application Layer
- Frontend web client: Next.js-based web application providing the user interface for the Onyx platform
- API Server: Python FastAPI web server to handle business logic and requests
- Background Workers: Python workers to handle async jobs like fetching document updates, etc.
Data Layer
- Relational Database: Postgres database to store application data, user sessions, and system state
- Vector Database: Vespa keyword search engine + vector store for retrieving context for queries
- In Memory Cache: Redis, used to optimize performance
- File Store: MinIO blob store for user uploaded files and documents pulled from connectors
Infrastructure Layer
- Request Router: Nginx reverse proxy for load balancing and request routing