Synthetic Data Engine for CDPs
Generate realistic user journeys with proper event sequences, timing, and cross-dataset relationships. Quickly, reliably, and at scale.
Performance
Generates millions of events on a single machine. Scales linearly with worker threads.
Quick Start
Use the CLI to scaffold a project, or import the library directly.
# Install the CLI globally
npm install -g @synode/cli
# Scaffold a new project
synode init
# Generate 1,000 users from config
synode generate synode.config.ts --users 1000
# Validate config without generating
synode validate synode.config.ts import {
defineAction,
defineAdventure,
defineJourney,
} from '@synode/core';
const viewProducts = defineAction({
id: 'view',
name: 'page_view',
wait: '10s',
fields: {
url: '/products',
referrer: (ctx) => ctx.faker.internet.url(),
},
});
const productList = defineAdventure({
id: 'product-list',
name: 'Product List',
wait: '2m',
actions: [viewProducts],
});
const browse = defineJourney({
id: 'browse',
name: 'Browse Products',
weight: 5,
cooloff: '30m',
adventures: [productList],
}); import { generate, FileAdapter } from '@synode/core';
await generate([browse, purchase], {
time: {
start: new Date('2026-01-01'),
duration: '90d',
},
simulation: {
users: 500,
lanes: 8,
tick: '15m',
scatter: 0.15,
},
adapter: new FileAdapter({ dir: './output' }),
});
// → Simulated 90 days of activity across 500 users Already have event data?
Drop a CSV, JSONL, or JSON export and Synode builds your entire config automatically. Journeys, field distributions, datasets, and personas. All detected from your data.
$ synode analyze
Learn more →
Features
Everything you need to generate realistic synthetic data for your platform.
Journey Hierarchy
Four levels deep. Journey, Adventure, Action, Event. Each with timing, bounce rates, and suppression periods.
Personas & Datasets
Weighted attribute distributions and typed datasets with compile-time safety.
Simulation Engine
Tick-based clock advances time in configurable steps. Lanes act as concurrent user slots. Cooloffs, weights, and scatter produce realistic activity patterns across a time window.
Output Adapters
Console, File, HTTP, Stream, BigQuery, Composite. Six built-in options, or build your own.
Event Validation
Zod schemas with strict, warn, and skip modes. Catch bad data before it leaves your pipeline.
CLI & Config
Generate, validate, analyze, and scaffold projects from the command line. Config-driven, fully scriptable.
Reverse Engineering
Analyze existing event data (GA4, Segment, Mixpanel, CSV) and auto-generate a complete Synode config.
VS Code Extension
IntelliSense, live diagnostics, hover docs, and a dedicated explorer sidebar for Synode configs.
How It Works
Three pillars feed into a tick-driven simulation pipeline that produces realistic event streams.
Synthetic identities with weighted persona distributions
Pre-generated entity tables with typed row access
Behavioral flows with weights, cooloffs, and prerequisites
Packages
Modular architecture. Install only what you need.