Architecture

This page outlines enVector’s high-level architecture, its core components, and the data flow for encrypted indexing and search.

Components

  • Application (Client + SDK):

    • Generates/holds keys; never shares secret keys with the service

    • Encrypts vectors and queries; decrypts scores and metadata

    • Manages local index config (dimension, presets, query/index encryption)

  • API Gateway:

    • Public API endpoint (gRPC/HTTP), authn/authz, request validation

    • Routes calls to the appropriate plane; applies rate limits and observability

  • Data Plane:

    • Runs encrypted compute (e.g., inner‑product scoring) on uploaded ciphertext

    • Batches and schedules work; streams data to/from storage as needed

    • Stateless by design; does not require or persist client secret keys

  • Index Plane:

    • Owns index lifecycle: create → load → unload → drop

    • Builds and maintains encrypted index artifacts used for fast lookup

    • Persists and retrieves artifacts from storage; exposes index‑level stats/health

  • Object Storage:

    • S3‑compatible storage for encrypted payloads (items, blobs, artifacts)

    • No plaintext vectors or secret keys are stored by the service

  • Encrypted Index (at rest):

    • The persisted, encrypted representation of each index (separate from raw item blobs)

    • Produced and maintained by the Index Plane; read by the Data Plane for scoring

System Overview

Key points:

  • The server never requires client secret keys. It only receives the keys and parameters needed for encrypted evaluation.

  • Index data is stored encrypted at rest; query processing can be done with plaintext or ciphertext queries depending on privacy needs.

  • All similarity computations (e.g., inner product) execute on encrypted data.

Notes:

  • Index encryption is always enabled; indexes are never stored in cleartext.

  • Queries may be sent in plaintext or ciphertext. Choose ciphertext for maximum privacy.

Last updated