Skip to content

eventum-generator/eventum

Repository files navigation

Eventum

Eventum

Data generation platform

CI Coverage PyPI Python Docker License

📖 Documentation  ·  🎓 Tutorials  ·  🔌 API Reference  ·  📋 Changelog  ·  📅 Task tracker  ·  💬 Discuss


Eventum produces synthetic events and delivers them anywhere — in real time or in batch. Generate a continuous stream of logs for your SIEM, seed a staging database with realistic data, or stress-test a pipeline with high-throughput traffic. Define everything in YAML, no code required.

Input → Event → Output pipeline

✨ Highlights

🎭 Realistic data — Jinja2 templates with Faker and Mimesis generate believable names, IPs, timestamps, and domain-specific values

🕐 Flexible scheduling — cron expressions, fixed intervals, or statistical time patterns that mimic real-world traffic curves

📤 Multiple destinations — fan-out to stdout, files, ClickHouse, OpenSearch, or any HTTP endpoint simultaneously

🔀 Two modes — stream events in real time at their scheduled timestamps, or generate everything as fast as possible

🖥️ Built-in web UIEventum Studio for visual editing, event preview, and monitoring

REST API — start, stop, and manage generators programmatically

🔒 Encrypted secrets — credentials stored securely via an encrypted keyring

🐳 Docker ready — multi-stage builds, runs anywhere

🚀 Quick start

Install

pip install eventum-generator

Also available via uv (uv tool install eventum-generator) or Docker (docker pull rnv812/eventum-generator).

Create a templateevents.jinja

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

Create a configgenerator.yml

input:
  - cron:
      expression: "* * * * * *"
      count: 1

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

output:
  - stdout: {}

Run

eventum generate --path generator.yml --live-mode
2026-02-23 12:00:01+00:00 INFO  user=jsmith action=login ip=192.168.44.12
2026-02-23 12:00:02+00:00 INFO  user=amiller action=login ip=10.0.128.55
2026-02-23 12:00:03+00:00 INFO  user=kwilson action=login ip=172.16.0.91

🔌 Plugins

Each part of the pipeline is a plugin. Swap, combine, or extend — change the schedule without touching templates, add new outputs without modifying anything else. See the plugin reference for the full list.

🖥️ Application mode

Run multiple generators with a web UI and REST API:

eventum run -c eventum.yml

Starts on port 9474 with Eventum Studio (web UI), REST API, and multi-generator orchestration — each generator runs independently with its own schedule, templates, and outputs.

📖 Documentation

Full documentation at eventum.run:

📄 License

Apache License 2.0