Now in 38 regions

Every event, set in stone.

Basalt catches every event the moment it lands and sets it into typed, joined tables you can query in milliseconds. Write SQL. Read an API. Skip the pipeline.

p994.2 ms
Throughput1.28M ev/s
Setup9 min median
Query
Views
Lineage
prod · eu-north-1
-- live, last 60 seconds
SELECT
  region,
  event,
  count(*)            AS per_min,
  p99(latency_ms)     AS p99
FROM stream.events
WHERE ts > now() - '1 minute'
GROUP BY 1, 2
ORDER BY per_min DESC;
Region
Event
Per min
p99
eu-north-1
payment.succeeded
48,210
2.1 ms
us-east-2
model.inference
41,877
3.4 ms
ap-south-1
session.started
36,502
1.8 ms
eu-west-3
cart.updated
29,914
2.7 ms
us-west-1
sensor.reading
27,340
1.2 ms
812 rows · 3.1 ms · eu-north-1
Refreshing every event
Trusted by 2,400+ teams
How it works

Three moves, no glue code.

Step 01
Connect

Point your sources at Basalt.

Kafka topics, Postgres change streams, webhooks and SDK calls land in one ordered log. Retries are deduplicated, so every event counts once.

Step 02
Model

Shape it with plain SQL.

Write a view once. Basalt keeps joins, windows and aggregates current with each event, with lineage back to the raw row.

Step 03
Serve

Read it as an API.

Every view is a REST, GraphQL and Postgres endpoint the moment it exists, served from the closest of 38 regions.

Capabilities

Solid under every load.

Serving
Live
p50
1.7ms
p99
3.9ms
Reads
412k/s
p99 latency · last 60 s
ms

Single-digit milliseconds, every read.

Hot rows stay in memory beside the view that produced them. Your app, dashboards and models read the same answer at the same speed.

Lineage
Column level
stream.orders
stream.payments
orders_enriched
api / v1

Trace any number to its source.

Click a cell and see the exact events that produced it, down to the column.

Network
38 regions

Close to every user.

Replicas follow your traffic with sub-second failover.

Schema
v14

Schemas that evolve.

Add or retype a field with no migration window.

History
30 days

Time travel on every table.

Query any view as of any second in the last 30 days. Answer last Tuesday's question with last Tuesday's rows.

Delivery
Guarantee

Exactly once, end to end.

Idempotent writes with per-key ordering. Retries, replays and network splits never count a payment twice.

Use cases

One layer, many shapes.

Use case · Fintech

Score every payment before it settles.

Fraud models need the last thirty seconds of behavior. Basalt joins payments, sessions and device signals as they happen and serves a fresh feature row in milliseconds.

  • Payments, ledgers and KYC events in one ordered log
  • Per-account features updated on every transaction
  • Exact replay for auditors with 30-day time travel
Decision time 3.8 ms
False positives -31%
FRAUD_SCORE > 0.92PAYMENTS · LAST 60 SBLOCKED IN 3.8 MS
Use case · Commerce

Stock, price and cart, always in agreement.

Inventory, pricing and carts change every second across warehouses and storefronts. Basalt keeps one live view of each SKU, so you only sell what is on the shelf.

  • Postgres CDC from every warehouse database
  • Live availability per SKU, region and channel
  • Cart and checkout events joined in the same view
Oversells 0 last quarter
Views refreshed per event
Hexagonal grid of inventory cells, brighter where stock is moving
Use case · AI agents

Give your agents memory that stays fresh.

Agents act on what they can read. Basalt exposes live, row-level context as typed tools, so an agent sees the order that shipped a second ago and follows the same access policies as your app.

  • Typed tools for Corvid, Nimbia and Chainweave
  • Row-level security on every agent call
  • Embeddings stored beside the rows they describe
Context age < 50 ms
Tool calls 1.9M / day
orders.liveticketsinventoryrefundsfeaturesagent
Use case · IoT

Millions of sensors, one queryable map.

Fleets, meters and machines report in bursts and out of order. Basalt orders every reading by event time, windows it per device and keeps the latest state ready for dashboards and alerts.

  • Event-time windows that handle late arrivals
  • Per-device state with 7-year retention on Enterprise
  • Alerts fired from SQL, delivered by webhook
Readings 412k / s
Late events handled 100%
Field of sensor dots with three highlighted devices
After the switch

Proof from production.

Events dropped
0

Across every customer cluster, trailing 12 months.

p99, 11 → 4.2 ms
4.2ms

Median customer, down from 11 ms on their previous stack.

Pipelines replaced
14avg

Queues, jobs and caches retired per team in year one.

Median setup
9min

From sign-up to the first query on live events.

Customers

Teams that stopped babysitting pipelines.

Ferrous
Payments
“Our ledger and our fraud checks finally read the same numbers. Reconciliation used to take a day. Now it runs as a view and nobody thinks about it.”
Ragnheiður Jónsdóttir
Head of Platform, Ferrous
Halcyon
Logistics
“We track 60,000 trucks. Late GPS pings used to scramble our ETAs. Basalt orders them by event time, and dispatch trusts the map again.”
Daniel Okafor
Staff Engineer, Halcyon
kiln.dev
AI agents
“Our agents read customer state through one typed tool. It is fresh to the second and respects every tenant boundary. That was months of work we never had to do.”
Priya Raman
Co-founder, kiln.dev
FAQ

Before you start.

Most teams run their first query on live events in under ten minutes. Create a workspace, connect a source with the CLI or the dashboard, and write a view in SQL.

No. Basalt reads your existing topics with consumer-group offsets and exactly-once commits. Many teams keep Kafka as the transport and retire the stream processors, jobs and caches behind it.

By events ingested. Hobby is free up to 10M events a month, Scale is $249 a month with 1B events included, and Enterprise is a custom annual agreement. Seats and queries are never billed.

In the regions you choose. Scale lets you pick three of our 38 regions. Enterprise adds private regions and bring-your-own-cloud deployments in your AWS, GCP or Azure account.

Yes. Every table supports time travel. Query any view as of any second in the last 30 days on Scale, or a custom window on Enterprise.

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.

Project reserved · check your inbox
That didn't go through · check the address and try again
2,400+ teams in productionSOC 2 Type II38 regions