Skip to main content

Operating modes

walkerOS offers two ways to configure and deploy your event collection. Both use the same underlying architecture (Sources, Collector, Destinations), just packaged differently.

Integrated mode

The collector lives inside your application code.

import { startFlow } from '@walkeros/collector';
import { sourceBrowser } from '@walkeros/web-source-browser';

const { elb } = await startFlow({
sources: { browser: { code: sourceBrowser } },
});

Best for:

  • Building walkerOS directly into your app
  • Full programmatic control and type safety
  • Custom logic and dynamic configuration
  • Teams comfortable with TypeScript

Get started with integrated mode →


Bundled mode

The collector is a separate artifact you configure with JSON and build with the CLI.

{
"version": 1,
"flows": {
"default": {
"web": {},
"sources": { "browser": { "package": "@walkeros/web-source-browser" } }
}
}
}

Then: walkeros bundle flow.json → outputs standalone file.

Best for:

  • Config-as-code workflows (Git, PRs, CI/CD)
  • Independent versioning and deployment
  • Teams who prefer JSON over TypeScript
  • Docker deployments and server-side collection

Get started with bundled mode →


Same core, different packaging

Both modes use identical:

  • Sources - Browser, DataLayer, HTTP, custom
  • Collector - Event processing, consent, enrichment
  • Destinations - GA4, APIs, BigQuery, custom
  • Mapping - Event transformation rules

The only difference is how you configure and deploy them.

Choosing your mode

If you...Use
Want full control in TypeScriptIntegrated
Prefer JSON configurationBundled
Building a React/Next.js appIntegrated
Deploying with DockerBundled
Need dynamic runtime configIntegrated
Want separate tracking scriptBundled
Both?You can use Integrated client-side and Bundled server-side
💡 Need Professional Support?
Need professional support with your walkerOS implementation? Check out our services.