ScopeDB
ScopeDB

Turn live events into
real-time insights.

Keep every event in one petabyte-scale database. Schemas flex as your events change; filter, search, aggregate, and join them any way you need.

Different events become insightsSix cards representing code, interactions, traces, logs, cloud data, and messages appear one beat apart with matching actions: a pointer clicks, code unfolds, logs write, a trace travels, a cloud receives data, and message dots type. Each card springs into the aligned grid. The cards wind back half a beat before a compression wave squeezes and twists them clockwise through a tightening spiral into the center over one beat. The compression then releases four charts that settle two beats later in an aligned grid: a rolling trend, a distribution, a matching breakdown, and a heatmap of event categories over time. These are conceptual examples, not measured product data.

Agents turn events into answers

Ask your agent to query ScopeDB and explain the results.

Sales are flowing in. Which stores across the country need attention now?

Agent
  1. I'll compare the latest 15 minutes with the previous 15, using the same stores across each region.

    FROM pos_events AS sales
    JOIN stores ON sales.store_id = stores.id
    WHERE sales.time >= '2026-09-24 14:00:00+00:00'::timestamp
      AND sales.time < '2026-09-24 14:30:00+00:00'::timestamp
      AND sales.event = 'purchase_completed'
    GROUP BY stores.region AS region, if(sales.time < '2026-09-24 14:15:00+00:00'::timestamp,
      'previous', 'latest') AS period
    AGGREGATE count() AS paid_orders
    ORDER BY region, period DESC
    Running…

Connect your app

Query ScopeDB from your backend with an SDK.

npm install scopedb
import { Client } from "scopedb";

const endpoint = process.env.SCOPEDB_ENDPOINT;
const apiKey = process.env.SCOPEDB_API_KEY;
if (!endpoint || !apiKey) {
  throw new Error("Set SCOPEDB_ENDPOINT and SCOPEDB_API_KEY");
}

const client = new Client(endpoint, { apiKey });
const result = await client.query("SELECT 1 AS ready");
console.log(result.toObjects({ integerMode: "string" }));

Use the connection guide to set your endpoint and API key as server-side environment variables.

See the Node.js SDK guide for API details.

Visualize your events

Turn query results into live charts and dashboards for humans to explore and share.

Track conversion

Follow visits through signup and activation, and see where users drop off.

Signup conversion
Visits convert to signups and activationsA growing cohort starts with 1,000 visits, 620 signups and 410 activations. Each new batch adds 60 visits, then 38 signups and 25 activations. Bar lengths share the same scale so the drop between steps is visible.

Find slow requests

Spot requests above your latency threshold, then trace the wait to logs and dependencies.

Request duration · ms
Request durations over the last minuteEach bar is one request. New requests enter at Now and move left. Purple bars exceed the dashed 650 millisecond threshold. The scale stays fixed from zero to 1,000 milliseconds.

Trace agent runs

Follow parallel tool calls, a failed search, and its retry before the agent answers.

Agent run
Parallel tools, a retry, then an answerThe agent first plans the task. Its decision reveals parallel search and query calls. Search times out and a retry appears while query continues. After both tools finish, the answer is revealed and generated. Checkmarks mark completed steps.

Scale with demand

Retain petabytes of data and ingest millions of events per second.

Data retained
10 PB+
Peak ingestion
30 GiB/s
Peak events / second
10M
Elastic capacity
Elastic capacity follows changing demandElastic capacity adds and releases compute as workload changes, leaving headroom. Filled square cells represent elastic compute capacity in relative units. The foreground curve shows workload. New observations enter on the right and move left over time.
  • Workload
  • Elastic

Compute that follows your workload

Scale up for bursts and back down in quieter periods. Run ingestion and queries in separate compute groups over the same data.

Architecture

Explore ScopeDB

All articles

Run your
first query