basalt

AI & MLPartnerGA

Pinecone indexes, kept in sync.

Map a view's vector column to a Pinecone index. Inserts and updates upsert within seconds, and deletes remove the vector.

Setup
3 min
Delivery
Idempotent upserts
Throughput
10k vectors/s
Since
v2.0
Overview

How it works.

Basalt reads the view's change feed and upserts vectors by row key into the namespace you choose. Other columns are sent as metadata for filtering. Deletes in the view become deletes in the index.

KAFKA TOPICSBASALTVIEWSSERVEpayments.v3orders.v1refunds.v2ORDERED LOGpayments_liverevenue_by_minAPI3.1 MS
Setup

Set it up in three steps.

01

Connect the tool

Paste a Pinecone API key and name an existing serverless index. Basalt checks that dimensions match before the first upsert.

terminal
# sync product embeddings to Pinecone
basalt sink add catalog --pinecone products-prod --view product_vectors --namespace live
✓ index products-prod · 1536 dims · cosine
✓ 1.2M vectors upserted · lag 1.8 s
02

Shape it with a view

Write plain SQL over the source. Basalt keeps the view current with every record and tracks lineage back to the topic, partition and offset.

views/revenue_by_min.sql
CREATE MATERIALIZED VIEW revenue_by_min AS
SELECT date_trunc('minute', ts) AS minute,
       currency,
       sum(amount) AS revenue,
       count(*)    AS payments
FROM payments
WHERE status = 'captured'
GROUP BY 1, 2;
03

Read it from anywhere

Every view is an endpoint the moment it exists. Call it over REST, connect with any Postgres client, or use the SDK from your app.

terminal
curl https://api.basalt.dev/v1/views/revenue_by_min?limit=5 \
  -H "Authorization: Bearer $BASALT_TOKEN"
✓ 200 OK · 5 rows · served from eu-north-1 in 3.1 ms
Included

What you get.

01

Idempotent upserts

Vectors are keyed by row ID, so retries overwrite instead of duplicating.

02

Metadata filters

Pick columns to send as metadata for filtered queries in Pinecone.

03

Deletes follow

Rows removed from the view are deleted from the index within seconds.

04

Namespace routing

Route tenants or environments to separate namespaces from one view.

Related

Other ways to stream in.

All integrations →
Beta

Anthropic

AI & ML

Give Claude live, row-level context through a typed tool.

Beta

OpenAI

AI & ML

Embed events as they land and store vectors beside the rows.

Partner

Hex

BI & notebooks

Query views from SQL cells and keep notebooks current.

Get started

Set your data in stone.

Free up to 10M events a month. No card, no sales call. Your first pipeline is live in about four minutes.

2,400+ teams in production

SOC 2 Type II

38 regions

Get started

Set your data in stone.

Free up to 10M events a month. No card, no sales call. Your first pipeline is live in about four minutes.

2,400+ teams in production

SOC 2 Type II

38 regions

Get started

Set your data in stone.

Free up to 10M events a month. No card, no sales call. Your first pipeline is live in about four minutes.

2,400+ teams in production

SOC 2 Type II

38 regions

© 2026 Basalt Labs

All systems normal

Back to top ↑

404

© 2026 Basalt Labs

All systems normal

Back to top ↑

404

© 2026 Basalt Labs

All systems normal

Back to top ↑

404

Create a free website with Framer, the website builder loved by startups, designers and agencies.