Overview
Architecture
Architecture

Product video
Spice.ai Enterprise is a portable (<150MB) compute engine built in Rust for data-intensive and intelligent applications. It accelerates SQL queries across databases, data warehouses, and data lakes using Apache Arrow, DataFusion, DuckDB, or SQLite. Integrated and co-deployed with data-intensive applications, Spice materializes and accelerates data from object storage, ensuring sub-second query performance and resilient AI applications. Deployable as a container on AWS ECS, EKS, or hybrid cloud & edge, it includes enterprise licensing, support, and SLAs.
Note: Spice.ai Enterprise requires an existing commercial license. For details, please contact sales@spice.ai .
Highlights
- Unified data query and AI engine accelerating SQL queries across databases, data warehouses, and data lakes. Delivers sub-second query performance while grounding mission-critical AI applications with real-time context to minimize errors and hallucinations.
- Advanced AI and retrieval tools, featuring vector and hybrid search, text-to-SQL, and LLM memory, enabling data-grounded AI applications with more than 25 data connectors enabling federated queries and real-time applications.
- Deployable as a container on AWS ECS, EKS, or on-premises, with dedicated support and SLAs for scalable, secure integration into any architecture.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Vendor refund policy
Refunds for Spice.ai Enterprise container subscriptions are not available after activation, as usage begins immediately upon deployment. Ensure compatibility with AWS ECS, EKS, or on-premises setups before purchase. For billing inquiries, contact AWS Marketplace support or Spice AI directly at support@spice.ai .
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
Container Deployment
- Amazon ECS
- Amazon EKS
- Amazon ECS Anywhere
- Amazon EKS Anywhere
Container image
Containers are lightweight, portable execution environments that wrap server application software in a filesystem that includes everything it needs to run. Container applications run on supported container runtimes and orchestration services, such as Amazon Elastic Container Service (Amazon ECS) or Amazon Elastic Kubernetes Service (Amazon EKS). Both eliminate the need for you to install and operate your own container orchestration software by managing and scheduling containers on a scalable cluster of virtual machines.
Version release notes
Spice v2.1.0-enterprise is the enterprise release of v2.1.0, headlined by high-throughput Cayenne CDC, scaling and resilience improvements to PostgreSQL logical replication, expanded distributed query with Iceberg catalog scans and broadcast joins, and the upgrade to DataFusion v54 (including v53), Arrow v58.3, and Vortex v0.74. The release also adds experimental adaptive self-tuning for the Cayenne accelerator, distributed GLM inference, and a range of security, search, and connector improvements for enterprise deployments.
Highlights in v2.1.0-enterprise include:
- High-Throughput Cayenne CDC - in-memory CDC tier, dedicated compaction runtime, and write-path optimizations that cut replication lag on high-volume CDC workloads
- PostgreSQL Replication at Scale - multiple changes-mode datasets share a single replication slot, unchanged-TOAST recovery, and resilient reconnects across rolling deploys
- Distributed Query - distributed Ballista scans of Iceberg catalog tables, broadcast joins for small dimension tables, and shared scheduler job state with failover
- DataFusion v54 - upgrade to DataFusion v54 (folding in v53), Arrow v58.3, and Vortex v0.74, bringing faster joins, scans, and planning
- Adaptive Self-Tuning (Experimental) - opt-in closed-loop tuning and maintained aggregates that adapt Cayenne to hardware, schema, and live workload
What's New in v2.1.0-enterprise
High-Throughput Cayenne CDC
A major focus of v2.1 is Spice Cayenne write-path throughput for change-data-capture (HTAP) workloads:
- In-Memory CDC Tier: A new in-memory CDC tier and follow-ups cut replication lag on hot upsert tables, with bounded mem-tier checkpointing and O(1) per-scan deletion views, plus a two-phase off-fence checkpoint on the ingest path.
- Dedicated Compaction Runtime: A dedicated compaction runtime with CDC pipelining and protected snapshots isolates compaction from query and ingest paths, with parallelized deletion-vector writes, per-batch directory-barrier coalescing, and size-aware parallel encode for protected-snapshot compaction.
- Incremental Protected Snapshot Compaction: Incremental compaction of protected snapshots (used in Cayenne's merge-on-read deletion index) reduces disk usage and improves query performance.
- Smaller WAL & Metadata-Only Publish: cayenne_insert_record table IDs are stored as 16-byte raw-UUID BLOBs, cutting CDC WAL volume ~34%; upsert commits publish metadata-only, dropping per-key insert records; transient staged CDC deltas are light-encoded.
- Delta-Write Encoding Levels: A new cayenne_delta_encoding setting (default auto) selects delta-write encoding, and cayenne_compression_strategy: zstd is now fully wired.
- In-Memory CDC Sharding: PK-hash intra-apply sharding parallelizes in-memory CDC apply.
- Scan Safety Under Write: In-flight scans are ref-counted so snapshot GC can't delete Vortex files mid-read; in-RAM scan parallelism, query admission control, and sound scan output ordering improve read behavior under sustained CDC.
Delta-write encoding effort and Vortex compression are tunable per accelerator. cayenne_delta_encoding: auto (the default) size-gates fresh CDC/append writes - small deltas use a light scheme and are re-encoded during compaction - or pin an explicit level 0..10 (7 is the full default cascade); cayenne_compression_strategy selects the Vortex compression:
acceleration: engine: cayenne refresh_mode: changes params: cayenne_delta_encoding: auto # 'auto' (default), or pin a level 0..10 (7 = full cascade) cayenne_compression_strategy: zstd # 'btrblocks' (default) or 'zstd'Change Data Capture & HTAP
PostgreSQL logical replication (CDC, refresh_mode: changes, introduced in v2.0 ) gets significant scaling and resilience work in v2.1:
- Shared Replication Slot: Multiple refresh_mode: changes PostgreSQL datasets on the same connection can name the same pg_replication_slot to share a single replication slot, walsender decoder, and publication, with decoded changes multiplexed by (schema, table) to each dataset. This collapses the slot count from one-per-dataset to one - staying well under Postgres's default max_replication_slots = 10.
- Unchanged-TOAST Recovery: Under REPLICA IDENTITY FULL, when an UPDATE leaves a large TOASTed column unchanged, pgoutput sends an "unchanged" marker; Spice now fills that value from the old tuple - its old value is its current value - so updates no longer error or drop columns. Without an old tuple, the error persists with a hint to enable REPLICA IDENTITY FULL.
- Transient Walsender Contention: Slot-contention errors during rolling deploys - SQLSTATE 55006 ("replication slot is active for PID") and 53300 ("requested standby connections exceeds max_wal_senders") - are now classified as transient and retried with backoff instead of fatally terminating the stream. Replication connections are also released at shutdown start (not process exit), freeing walsender seats for replacement instances.
- Strict CDC Param Validation: PostgreSQL CDC parameters are strictly validated rather than silently defaulted.
- Debezium Schema Evolution: Fixes for Debezium schema-evolution support, including tombstone-message handling and sign-extension of minimal-width base64 decimals.
Distributed Query
Spice.ai Enterprise feature. See High Availability .
Distributed Query gains:
- Distributed Iceberg Catalog Scans: Ballista distributes scans of Iceberg catalog tables across executors.
- Broadcast Joins: Small dimension tables are broadcast to executors for distributed joins.
- Shared Scheduler Job State with Failover: Ballista job state is shared so the scheduler can fail over without losing in-flight work.
Performance & Query Engine
Apache DataFusion is upgraded to v54, folding in v53, alongside Arrow v58.3 and Vortex v0.74 (with a pin bump adding intra-file decode split and a per-execution kernel cache). Two DataFusion releases land in this upgrade:
- DataFusion v54 (release notes ): adds LATERAL joins, SQL lambda functions (x -> expr with array_transform/array_filter/array_any_match), spilling nested-loop joins, and a faster arrow-avro reader. Performance work includes morsel-driven Parquet scans (up to ~2x faster for skewed scans), 20-50x faster sort-merge semi/anti/mark joins, redundant-sort-key pruning, NDV-based cardinality estimation, and inner_product/cosine_distance functions.
- DataFusion v53 (release notes ): adds LIMIT-aware Parquet row-group pruning, broader filter pushdown through joins and UNION, nested-field pushdown (get_field into the scan), faster query planning (some plans dropping from ~4-5ms to ~100us), and 42 faster built-in functions.
Federation deny-list enforcement and catalog DDL are restored after the DataFusion upgrades, and a cost-based left-deep join reordering rule is added for Cayenne acceleration.
AI & LLM
- Native GLM Support with Distributed Inference: Native GLM model support with surfaced reasoning_content, including tensor-parallel GLM inference. Load a GLM model with model_type: glm4 (glm4moe and glm4moelite are also supported):
For large models, GLM inference can be distributed across nodes (tensor parallelism) via the mistral.rs pure-TCP ring all-reduce backend - no NCCL/system dependency. This is a Spice.ai Enterprise feature requiring the distributed build. Run the same model on each node, changing only node_rank:
models: - name: glm from: huggingface:huggingface.co/THUDM/glm-4-9b-chat params: model_type: glm4 distributed_backend: ring nodes: 10.0.4.21,10.0.4.22 # ordered host/IP per rank; the ring backend currently requires exactly 2 node_rank: 0 # rank of THIS node in [0, world_size); rank 0 serves the API. Set node_rank: 1 on 10.0.4.22- NSQL Context Endpoint: A new GET /v1/nsql/context endpoint returns the SQL dialect, dataset schemas (with optional sample rows), and registered functions that Spice injects into natural-language-to-SQL (POST /v1/nsql) requests - useful for inspecting or caching exactly what the model sees:
Returns the dialect, per-dataset schema (keys, indexes, searchable columns), the registered function inventory, and sample rows (abbreviated):
{ "context": "# Spice.ai NSQL Context", "instructions": [ "Write SQL for the Spice runtime, which uses Apache DataFusion with the SQL parser configured for the PostgreSQL dialect.", "Use table and column descriptions, primary keys, foreign keys, unique constraints, and indexes when choosing joins and filters." ], "sql": { "engine": "Apache DataFusion", "version": "54.0.0", "dialect": "PostgreSQL", "parser": "DataFusion SQL parser configured with PostgreSQL dialect" }, "datasets": [ { "name": "sales.orders", "table": "orders", "description": "Customer orders", "columns": [ { "name": "order_id", "data_type": "Int64", "nullable": false, "primary_key": true, "indexed": true }, { "name": "customer_id", "data_type": "Utf8", "nullable": false, "vector_search": true, "full_text_search": true } ], "primary_key": ["order_id"], "foreign_keys": [ { "columns": ["customer_id"], "foreign_table": "spice.sales.customers", "foreign_columns": ["id"] } ] } ], "functions": { "summary": "Spice SQL runs on Apache DataFusion ... Run SELECT * FROM list_udfs() to inspect the full registered function inventory", "search": [ { "name": "vector_search", "syntax": "vector_search(dataset, 'query text'[, column])" }, { "name": "text_search", "syntax": "text_search(dataset, 'query text'[, column])" } ] }, "samples": [ { "title": "Example rows for `sales.orders`", "content": "| order_id | customer_id |\n| --- | --- |\n| 42 | CUST-1 |" } ] }Search & Vectors
- S3 Vectors Pagination: QueryVectors paginates for top-K up to 10,000.
- Elasticsearch kNN Candidate Pool: The default kNN candidate pool is raised from 10 to 1000 for better recall.
SQL & Query Engine
- FlightSQL Substrait Plans: CommandStatementSubstraitPlan support.
- Large Result Streaming: Flight streaming is optimized for large result sets.
- Write Authorization: The SQL tool allows writes for ReadWrite API keys.
- Schema Evolution Policies: on_schema_change supports widening-only evolution and a drop_and_recreate policy.
Security & Connectors
- Kafka mTLS: Mutual TLS configuration is surfaced in the Kafka data connector.
- Secret Resolution at Startup: Secret references are checked and reported at startup.
- DuckDB HNSW: Upgrade to DuckDB v1.5.3 with the statically linked VSS (HNSW) vector extension.
Adaptive Self-Tuning (Experimental)
The Spice Cayenne accelerator gains experimental opt-in self-tuning. cayenne_tuning: auto derives configuration from the detected hardware and inferred schema, while adaptive additionally runs a per-table closed-feedback controller that adapts flush caps, the in-memory CDC tier, compaction cadence, and write concurrency toward operator SLOs (replication lag, freshness, query latency, queries-per-hour). Cayenne can also maintain aggregates incrementally - with predicate-aware delta serving and incremental retraction - and fold whole-table SUM/AVG/COUNT/MIN/MAX from statistics. These features are experimental and disabled by default.
datasets: - from: postgres:public.orders name: orders acceleration: engine: cayenne refresh_mode: changes params: cayenne_tuning: adaptive # 'auto' (static, env- + schema-derived) or 'adaptive' (closed-loop)Observability
- Per-Dataset Query Attribution: The query_executions metric gains a datasets dimension.
- HTAP Diagnostics: Improved HTAP replication diagnostics on non-convergence.
- Cayenne Write Observability: Write-phase observability for the in-memory CDC tier.
Notable Bug Fixes
- Cayenne Utf8View: The Utf8View read schema avoids a hash-join offset overflow.
- Cayenne metastore: cayenne_metastore: turso is honored for partitioned tables and the dataset checkpoint.
- Dual-write detection: Dual-write accelerated tables are detected behind the metadata-enrichment wrapper.
- digest_many collisions: Values are length-prefixed so column boundaries can't collide.
- Turso WAL checkpoint: WAL checkpoints route through the native Turso connection.
- TLS status probe: The status check probes the metrics endpoint over HTTPS when TLS is enabled.
- Search snippet offsets: Character chunk offsets persist so search snippets aren't shifted or garbled.
- Async query chunk offsets: /v1/queries chunk row_offset uses the cumulative offset rather than chunk_index * chunk_size.
Dependency Updates
| Dependency / Component | Version |
|---|---|
| DataFusion | v54 |
| Arrow (arrow-rs) | v58.3 |
| Vortex | v0.74 |
| iceberg-rust | v0.9.1 |
| DuckDB | v1.5.3 |
| Rust toolchain | v1.95.0 |
Breaking Changes
No breaking changes.
Cookbook Updates
No new cookbook recipes.
The Spice Cookbook includes more than 100 recipes to help you get started with Spice quickly and easily.
Upgrading
To upgrade to v2.1.0-enterprise, use one of the following methods:
Docker:
Run using the 2.1.0 docker enterprise image
docker run --name spiceai-enterprise \ -p 50051:50051 -p 8090:8090 709825985650.dkr.ecr.us-east-1.amazonaws.com/spice-ai/spiceai-enterprise-byol:2.1.0-enterprise-models --http 0.0.0.0:8090 --flight 0.0.0.0:50051`For available tags, see DockerHub .
Helm:
helm pull oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/spice-ai/spiceai-enterprise-byol --version 2.1.0-enterprise-helm`Additional details
Usage instructions
The docker image expects a spicepod.yaml in the /app directory. Mount a volume into the container with the configured spicepod.yaml.
By default the endpoints only listen on 127.0.0.1, to access the endpoints from outside of the docker container, specify the endpoints to listen on 0.0.0.0 as shown below.
i.e. to mount the current directory into /app: docker run --name spiceai-enterprise -v .:/app -p 50051:50051 -p 8090:8090 709825985650.dkr.ecr.us-east-1.amazonaws.com/spice-ai/spiceai-enterprise-byol:2.1.0-models --http 0.0.0.0:8090 --flight 0.0.0.0:50051`
Resources
Vendor resources
Support
Vendor support
Spice.ai Enterprise includes 24/7 dedicated support with a dedicated Slack/Team channel, priority email and ticketing, ensuring critical issues are addressed per the Enterprise SLA.
Detailed enterprise support information is available in the Support Policy & SLA document provided at onboarding.
For general support, please email support@spice.ai .
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.