Eventum Logo

Eventum

Scenarios

Named groups of generator instances with coordinated lifecycle control, a diagram of the global state they exchange, and a live view of that state.

A scenario is a named group of generator instances that run as one unit. Projects define what a generator does; a scenario defines which instances belong together at runtime.

A corporate network simulation, for example, may consist of an authentication service tracking user sessions, a web proxy generating traffic for those users, a DNS resolver publishing the domains it refuses, and a firewall logging connections from the same population. Those generators exchange data through global state and are started and stopped together.

Configuration

Scenarios come from the scenarios field of each instance in startup.yml. An instance can belong to several of them:

startup.yml
- id: corp-auth-service
  path: corp-auth-service/generator.yml
  scenarios:
    - corporate-network
    - security-monitoring

- id: corp-web-proxy
  path: corp-web-proxy/generator.yml
  scenarios:
    - corporate-network

- id: corp-dns-resolver
  path: corp-dns-resolver/generator.yml
  scenarios:
    - corporate-network

- id: corp-edge-firewall
  path: corp-edge-firewall/generator.yml
  scenarios:
    - corporate-network
    - security-monitoring

Here corporate-network groups all four instances and security-monitoring groups two of them. There is no separate scenario file: a scenario exists as soon as an instance names it.

Studio writes the same field. Scenarios can be created on the Scenarios page, and membership can be changed from a scenario or from an instance.

Scenario list

Scenarios page in Eventum StudioScenarios page in Eventum Studio

Each row holds the number of instances in a scenario and the states they are in, so one that is only half running is distinguishable from one that is fully up. Rows can be started, stopped or deleted one at a time or as a selection.

The Create new button takes a name and the instances that belong to it. Deleting a scenario removes the grouping and leaves the instances themselves registered.

Scenario page

A scenario page in Eventum StudioA scenario page in Eventum Studio

The header carries the aggregate status of the group with the Start all and Stop all buttons. Where the Instances page acts on instances one at a time, this brings a whole simulation up or takes it down in one action.

Data flow

The diagram maps the global state the instances exchange: which generator writes a key, and which ones read it. It is present once any generator in the scenario calls globals.set() or globals.get().

Hovering an instance or a key dims everything it does not touch, which keeps a key written by one generator and read by three others legible.

Instances

Each instance is a card with the actions the Instances page offers for it, plus a Remove action, which takes it out of the group without deleting it.

An expanded instance card on a scenario pageAn expanded instance card on a scenario page

A card for a generator that uses global state expands into its templates and, for each of them, the keys it writes and the keys it reads. Hovering an entry highlights the matching edge in the diagram above.

Opening a template name shows its source read-only, inside the card, at the place where globals.set() and globals.get() are called.

Inline template preview on a scenario pageInline template preview on a scenario page

Global state

The panel on the right is the live globals dictionary the diagram describes, searchable over keys and values, with objects and arrays expandable rather than truncated. Keys can be added, edited as JSON and deleted, which puts a scenario into a state that would otherwise take a long run to reach.

Global state is application-wide. Editing it affects every running instance, not only the ones in this scenario. Check the data flow diagram for what depends on a key before changing it.

On this page