- Back up PostgreSQL and record every tenant Milvus alias target.
- Deploy migrations with
alembic upgrade head. - Deploy the API and verify
/health/live. - Verify
/health/readyreports PostgreSQL, MinIO, and Milvus as ready. - Deploy at least one
rag-workerprocess. - Run ingestion reconciliation and the deterministic smoke evaluation.
- Migrate tenant vector resources from schema V1 to V2 before enabling selective metadata filters.
- API unavailable: inspect process health, database pool saturation, and dependency readiness.
- Retrieval empty: compare PostgreSQL active chunks to Milvus active vectors and inspect query traces.
- Ingestion stuck: inspect
heartbeat_at, reset stale jobs, and retry only after confirming idempotent staging data. - Citation failure: retain trace and query IDs, inspect structured model output, and do not return unvalidated citations.
- Quality regression: disable the changed retrieval option at knowledge-base scope and restore the last evaluation baseline.
Application code may be rolled back while keeping additive migrations. Do not downgrade a migration while workers are active. Milvus V2 rollback is an alias switch to previous_physical_collection; validate row counts and embedding fingerprints before switching.
Run hourly and alert on any non-empty result:
- active PostgreSQL chunks without Milvus vectors;
- Milvus vectors without active PostgreSQL chunks;
- missing MinIO raw or parsed objects;
- stale processing jobs;
- staging versions older than the configured retention period.