Instrument once. Explain everything.
Three open-source SDKs and a plain HTTP API. Events follow one grammar — domain, entity, operation — so everything you capture composes into a single causal graph.
Your first event in five minutes.
Install @vectry/node, create a client with your API key, and capture your first structured event. The same grammar works from the browser with @vectry/js-core, from React with @vectry/react, or from anything that can POST JSON.
- npm install @vectry/node — MIT licensed, TypeScript types included.
- All SDKs are open source at github.com/vectry-analytics.
- Fire-and-forget ingestion — capture never blocks your request path.
import { Vectry } from '@vectry/node';
const vectry = new Vectry({
apiKey: process.env.VECTRY_API_KEY,
});
await vectry.capture({
namespace: 'auth.session.created',
actor_id: 'usr-102',
actor_type: 'user',
operation: {
type: 'created',
system_domain: 'auth',
system_entity: 'session',
system_entity_id: 'ses-88f2',
},
}); Five primitives, one graph.
Everything Vectry stores reduces to five primitives. Each carries multi-tenant scope, full audit metadata (created / modified / deleted with actor and timestamp) and a status lifecycle including archived and under-review.
-
Eventobservation - Atomic action, change or signal — actor + operation + context.
-
EventOperationembedded - Formal operation: type, system_domain, system_entity, system_entity_id, source, changes.
-
Traceexecution - Localized flow of related events bound to one entity, with start/end.
-
CausalThreadexecution - Cross-system storyline grouping traces, closing with an outcome.
-
EventExplanationsemantics - caused_by chain + human-readable narrative for one event.
-
Anomalydiagnostics - Expected vs actual pattern, deviation_score, level: event | trace | causal_thread.
One endpoint for everything else.
No SDK for your stack yet? POST events to /v1/ingest with a Bearer token. That is the same wire contract the SDKs use — and the same one the Sommatic vectry.log worker emits through, so workflow events land in the identical graph as your application events.
- POST https://api.vectry.io/v1/ingest — JSON body, Bearer auth.
- Same grammar from backends, devices, workflows and pipelines.
- Scoped API keys per organization and application.
Instrument in minutes.
Open-source SDKs, one HTTP ingest API, and a data model you can read in an afternoon.
- 01
Capture
Emit structured events from backends, browsers and devices with the SDKs or plain HTTP.
- 02
Thread
Vectry binds events to traces and causal threads around your real entities.
- 03
Explain
Query the why: causal chains, narratives and anomalies over your operation.
import { Vectry } from '@vectry/node';
const vectry = new Vectry({
apiKey: process.env.VECTRY_API_KEY,
});
await vectry.capture({
namespace: 'auth.session.created',
actor_id: 'usr-102',
actor_type: 'user',
operation: {
type: 'created',
system_domain: 'auth',
system_entity: 'session',
system_entity_id: 'ses-88f2',
},
}); -
@vectry/nodeEvent capture for Node.js services, jobs and workers. -
@vectry/js-coreUniversal browser SDK for user and app behavior. -
@vectry/reactHooks and providers for React applications. -
HTTP Ingest APIOne POST /v1/ingest — from anything that speaks HTTP.
MIT licensed · open source