Skip to main content

What Pixeltable Replaces

Most multimodal AI stacks look like this: blob storage for media, a relational database for metadata, a vector database for embeddings, an orchestrator for scheduling, and custom glue code holding it all together.
5+ services to deploy and maintain: blob storage, orchestrator, relational DB, vector DB, cache — plus custom retry logic, rate limiting, sync scripts, and error handling to wire them together.

Systems Pixeltable Replaces

You don’t install, configure, or manage these — Pixeltable handles them natively.

Tools Pixeltable Abstracts

These tools run under the hood, but you interact through a cleaner interface. This is a sample — Pixeltable wraps 30+ AI providers, dozens of built-in functions for media and data processing, and supports any Python library via @pxt.udf.

What Pixeltable Doesn’t Replace

You still need these — Pixeltable is a data layer, not a full application framework.
Migrating from a specific stack? See the step-by-step migration guides with side-by-side code comparisons:

Deployment Decision Guide

Pixeltable supports three production deployment patterns. Choose based on your constraints:

Technical Capabilities (Both)

Regardless of deployment mode, you get:

Use Case Comparison


Deployment Strategies

Approach 1: Batch Processing

Use Pixeltable as a batch processing engine: a Python script that ingests data, lets computed columns process it, exports results to your existing serving database via export_sql, and exits. No HTTP server, no FastAPI. Run it as a Cloud Run Job, ECS Task, Kubernetes Job, Lambda, or a cron container.
  • Existing RDBMS (PostgreSQL, MySQL, Snowflake) and blob storage (S3, GCS, Azure Blob) must remain
  • Long-running batch jobs (processing thousands of documents, hours of video)
  • Background tasks triggered by a queue, cron, or webhook
  • You don’t need an HTTP API at all
  • Run Pixeltable in an ephemeral container (Cloud Run Job, ECS Fargate, K8s Job, Lambda)
  • Define tables, views, computed columns in schema.py (idempotent)
  • Insert data from queue, RDBMS, or cloud storage
  • Computed columns process everything automatically (chunking, embeddings, LLM calls)
  • export_sql pushes structured results to your serving database
  • destination parameter routes generated media to cloud buckets
  • Container exits when done
  • Native multimodal type system (Video, Document, Audio, Image, JSON)
  • Declarative computed columns eliminate orchestration boilerplate
  • Incremental computation automatically handles new data
  • export_sql for any SQL database (PostgreSQL, MySQL, Snowflake, SQLite)
  • destination parameter for routing media to S3/GCS/Azure Blob
  • LLM call orchestration with automatic rate limiting
  • Iterators for chunking documents, extracting frames, splitting audio

Approach 2: Pixeltable as Full Backend

Use Pixeltable for both orchestration and storage as your primary data backend.
  • Building new multimodal AI application
  • Semantic search and vector similarity required
  • Storage and ML pipeline need tight integration
  • Stack consolidation preferred over separate storage/orchestration layers
  • Deploy Pixeltable on persistent instance (EC2 with EBS, EKS with persistent volumes, VM)
  • Build API endpoints (FastAPI, Flask, Django) that interact with Pixeltable tables
  • Frontend calls endpoints to insert data and retrieve results
  • Query using Pixeltable’s semantic search, filters, joins, and aggregations
  • All data stored in Pixeltable: metadata, media references, computed column results
  • Unified storage, computation, and retrieval in single system
  • Native semantic search via embedding indexes (pgvector)
  • No synchronization layer between storage and orchestration
  • Automatic versioning and lineage tracking
  • Incremental computation propagates through views
  • LLM/agent orchestration
  • Data export to PyTorch, Parquet, LanceDB
FastAPIRouter auto-generates request/response schemas from column types, handles file uploads via uploadfile_inputs, and supports background=True for long-running inserts. OpenAPI docs are available at /docs.
When to keep hand-written endpoints: Use @router.post() for multi-table operations, conditional logic, or custom response shapes. Since FastAPIRouter extends APIRouter, hand-written and declarative routes coexist on the same router. See the migration guide for details.
Use sync (def) endpoints, not async def. FastAPI dispatches sync endpoints to a thread pool, giving each request its own thread. Pixeltable is thread-safe and handles concurrent requests automatically. Using async def would block the event loop and serialize all requests. See Production Operations for details.

Approach 3: Declarative Serving (pxt serve)

Generate a complete REST API from a TOML config. No FastAPI code, no frontend, no hand-written endpoints. Define your schema in Python, declare routes in pyproject.toml, and run pxt serve.
  • You need an API but not a frontend
  • Endpoints are standard insert, query, delete, or export_sql operations
  • Prototyping an API before building a full application
  • You want zero Python web framework code
  • Define tables, views, computed columns, embedding indexes in schema.py
  • Declare routes in pyproject.toml using [[tool.pixeltable.service.routes]]
  • Run pxt serve my-service to generate and start a FastAPI app
  • Supports insert, query, delete, and export_sql route types
  • Auto-generates OpenAPI/Swagger docs
  • Complete REST API from configuration alone
  • Auto-generated request/response schemas
  • Background job support for long-running inserts
  • export_sql routes for pushing data to external databases
  • OpenAPI documentation out of the box
  • Same Pixeltable capabilities (computed columns, embedding indexes, etc.)

Get Started

Scaffold a project in one command, then customize:
Or scaffold a vertical application template:
Or clone the full Starter Kit for reference implementations with Docker, Helm, Terraform, CDK, and cloud job runners. The starter kit contains reference implementations for all three deployment patterns:

Next Steps

HTTP Serving

Expose tables and queries as HTTP endpoints with TOML or Python

Infrastructure Setup

Code organization and storage architecture

Production Operations

Concurrency, error handling, and schema evolution

Security & Backup

Backup strategies and security best practices
Last modified on June 24, 2026