Eventum Logo

Eventum

Getting started

Learn how Eventum works and generate your first events in minutes.

Eventum
Welcome to Eventum

A data generation platform that produces synthetic events and delivers them anywhere — in real time or in batch. Describe what your data looks like and when it should appear, Eventum takes care of the rest.


⚡ Why Eventum

Building and testing data-driven systems usually means waiting for real data to accumulate or writing throwaway scripts. Eventum gives you a declarative way to generate realistic data on demand.

🎭 Realistic content
Templates powered by Faker and Mimesis produce believable names, IPs, timestamps, and domain-specific values.
🕐 Precise timing
Cron schedules, fixed intervals, uniform ranges, or statistical patterns that mimic real-world traffic.
📡 Multiple destinations
stdout, files, ClickHouse, OpenSearch, or any HTTP endpoint — all at the same time.
🔀 Live and batch modes
Stream events at their actual timestamps, or generate an entire dataset as fast as possible.

🔧 How it works

Every generator runs a three-stage pipeline. You describe each stage in YAML — no code required.

Input
Defines when events occur — schedules, timers, cron, or time patterns.
Event
Defines what events look like — Jinja2 templates, Python scripts, or log replay.
Output
Defines where events go — stdout, files, databases, or HTTP endpoints.

Swap any part independently: change the schedule without touching the template, or add a new output without modifying anything else.


🚀 Quick example

Create a template

Templates use Jinja2 syntax with built-in modules like faker for realistic data. Each render receives a timestamp variable.

events.jinja
{{ timestamp }} INFO  user={{ module.faker.locale.en.user_name() }} action=login ip={{ module.faker.locale.en.ipv4() }}

Create a generator config

Wire the three pipeline stages together — cron input firing every second, template event plugin, and stdout output.

generator.yml
input:
  - cron:
      expression: "* * * * * *"
      count: 1

event:
  template:
    mode: all
    templates:
      - my_event:
          template: events.jinja

output:
  - stdout: {}

Run the generator

eventum generate --path generator.yml --live-mode

Events start printing at one per second:

2025-06-15 12:00:01+00:00 INFO  user=jsmith action=login ip=192.168.44.12
2025-06-15 12:00:02+00:00 INFO  user=amiller action=login ip=10.0.128.55
2025-06-15 12:00:03+00:00 INFO  user=kwilson action=login ip=172.16.0.91

This example runs a single generator from the command line. To run multiple generators with a server, API, and web UI, see the eventum run command.


📖 What's next

On this page