CVAT Architecture
Description of CVAT architecture and components
This guide is designed to provide a comprehensive overview of the architecture and components of the CVAT and to illustrate how each component interacts within the system.
Domain | Component | Functionality | Description |
---|---|---|---|
Analytics | Vector | Event processing | There are several components that process events (backend, frontend, web UI). All events are sent to a single point - Vector, where they are processed and then redirected to ClickHouse. For more information, see Analytics. |
ClickHouse | Event database | Stores events. For more information, see Analytics. | |
Grafana | Dashboards | Data based on the web interface. For more information, see Analytics. | |
Data storage NFS | RVVX access mode storage is required in case of multi-node deployment. Available with different types of storages: |
Contains data required for CVAT operations | It is necessary to have the capability for multiple mounting (across several nodes) in RWX mode. For more information, see K8 Deployment with Helm |
Data cache | Apache kvrocks | Used for data caching (queries and search). Suitable for environments that require frequent database queries. | Apache Kvrocks |
Job queue | Redis | Queue manager | |
Database | PostgreSQL | Database | A database where data is stored in a structured form. |
CVAT.ai Components | Ingress Controller (can be disabled) | Routing traffic. | CVAT deployment on Kubernetes with Helm |
Authorization | Authorization service based on Open Policy Agent. | ||
Backend CVAT | Backend | Main framework | Main engine, uses Django + Django DRF. |
Workers | Import Worker | Everything related to loading data - creating tasks, uploading annotations, etc. | |
Export Worker | Everything related to exporting data - exporting results, creating dumps, etc. | ||
Annotation Worker | Auto-annotation tasks. | ||
Utils Worker | Responsible for tracking various file changes and more. | ||
Analytics Report | Reports and analytics that are displayed in the CVAT interface. | ||
Quality Report | Analysis and reports on data quality. | ||
Webhook Worker | Manages webhooks. | ||
Auto annotation | Auto Annotation Nucio | Microservice application, used for auto annotation. | How to enable auto annotation feature. |