Events in your warehouse in under 1 second.
At-least-once delivery. Exactly-once to Snowflake, BigQuery and ClickHouse. Schema enforced at the edge, replay from any offset.
p50 latency, end to end
380 ms
Peak throughput, single stream
1.2M evt/s
Uptime, trailing 90 days
99.98%
From event to table, one path
Query it like it already landed
SELECT event, count(*) AS n
FROM nadi.events
WHERE ts > now() - interval '5 minutes'
GROUP BY 1 ORDER BY n DESC;
Schema, enforced at the edge
order_paid v3
order_id string required
amount_idr int64 required
channel enum web|app|pos
paid_at timestamp required
breaking change? blocked at produce time
Stream health, right now
consumer lag 0.3 s
events, last minute 948,204
schema violations 0
replay window 30 days
Instrument in minutes
JavaScript
import { Nadi } from '@nadi/sdk';
const nadi = new Nadi({ key: process.env.NADI_KEY });
await nadi.track('order_paid', {
order_id: 'ord_8f2k1',
amount_idr: 1250000,
channel: 'app',
});
// acknowledged when durable. p50 380 ms to the warehouse.
Python
from nadi import Client
client = Client(api_key=os.environ["NADI_KEY"])
client.track(
"order_paid",
order_id="ord_8f2k1",
amount_idr=1250000,
channel="app",
)
# batched, compressed, acknowledged. replay from any offset.
SQL
-- live table, not a nightly copy
SELECT
date_trunc('minute', paid_at) AS minute,
channel,
sum(amount_idr) AS revenue
FROM analytics.order_paid
WHERE paid_at > now() - interval '1 hour'
GROUP BY 1, 2;
Architecture
Before and after
Consumer fintech, 40 engineers
ETL 40 min → 0.8 s
Fraud features now read from live tables.
Marketplace, 12M events/day
nightly batch → continuous
Search ranking updates within seconds of a sale.
Logistics platform, 3 regions
6 pipelines → one stream
One schema registry replaced a wiki of tribal knowledge.
Pricing
Scale
$0.20 / million events
- Unlimited destinations
- 30-day replay window
- 99.95% uptime SLA
- SOC 2 report, SSO, private support
Your first million events are on us.
npm i @nadi/sdk · five minutes to first event