Realtime data layer · v4.0
Molten streams.
Solid answers.
Basalt turns raw event streams into typed, joined, queryable tables in milliseconds. One layer for ingest, transforms and serving.
Event to query
4.2 ms
Events / second
1,284,301
Why Basalt
Every product runs on events. Clicks, payments, sensor ticks, model calls. Most of them cool slowly in a warehouse, hours late and full of cracks. Basalt sets them the moment they land: typed, joined, indexed and ready to query while they still matter.
Ingest to query
< 5 ms
Pipelines replaced
avg. 14
Glue code deleted
~38k lines
Product
From eruption to bedrock.
Capabilities
Built for the hard parts.
Delivery
Guarantee
Exactly once
Idempotent writes with per-key ordering. Retries, replays and network splits never double-count a payment.
Schema
Evolution
Schema evolution
Add, rename or retype a field without a migration window. Old readers keep working, new readers see the new shape.
History
Time travel
Time travel
Query any table as of any second in the last 30 days. Debug last Tuesday's numbers with last Tuesday's data.
Network
38 regions
Edge replicas
Read replicas follow your users. Writes stay consistent, reads stay close, and failover takes under a second.
Access
Policy
Row-level security
Write policies once in SQL. Basalt enforces them on every API, replica and export, keyed to your auth provider.
Operations
Zero downtime
Live backfills
Rebuild a view across two years of history while the old version keeps serving. Swap atomically when it catches up.
By the numbers
Hard numbers, literally.
Query latency, p99
4.2
ms
Across all public regions, trailing 90 days.
Events per day
2.1
B
Peak sustained load on one production cluster.
Uptime SLA
99.95
%
Financially backed on Scale and Enterprise.
Edge regions
36
From Reykjavík to Singapore, more every quarter.
Developers
Eleven lines to production.
Typed SDKs for TypeScript, Python and Go. Define a source, write a view, read the result. Basalt handles partitioning, retries, scaling and the 3 a.m. pages.
pipeline.ts
pipeline.py
terminal
import
_
{ basalt }
_
from
_
"@basalt/sdk"
;
const
_
db = basalt({ project:
_
"acme-prod"
_
});
await
_
db.source(
"payments"
, { kafka:
_
"payments.v3"
_
});
await
_
db.view(
"revenue_by_minute"
,
_
`
__
SELECT window(ts, '1m') AS minute, sum(amount) AS revenue
__
);
const
_
rows =
_
await
_
db.table(
"revenue_by_minute"
).last(
60
);
_
// 3.1 ms
✓
source payments connected · 1.28M ev/s
✓
view revenue_by_minute materialized in 812 ms
✓
GET /v1/revenue_by_minute ready
Customers
“We deleted fourteen pipelines and a Kafka team's worth of on-call in one quarter. Our fraud model now sees a payment four milliseconds after it happens.”
IA
Ingrid Arnadottir
VP Engineering, Orbitly
Orbitly · Fintech
Tessera · Commerce
Quarry · Logistics
Pricing
Pay for what flows.
Monthly
Yearly
-20%
Hobby
Free forever
$
0
per month
For side projects and prototypes that need real streaming.
10M events / month
3 materialized views
1 region, community support
Scale
Most teams
$
249
per month, then $0.18 per 1M events
For production workloads with SLAs and a team behind them.
1B events included
Unlimited views and sources
99.995% uptime SLA, 3 regions
30-day time travel
Start 14-day trial
Enterprise
Custom
Custom
annual agreement
For regulated data, dedicated clusters and private networking.
Dedicated or BYOC deployment
SOC 2 Type II, HIPAA, GDPR
All 38 regions, private link
Named engineer, 15-min response

