Simulation

A simulation is a collection of systems and effects. When run, a simulation emits an interleaved stream of events from each of its effects, over the configured period of time. For example:

seed: 41
start: now - years(5)
systems:
  sqlite:
    format:
      type: sql
    import:
      command: sqlite3 db.sqlite
effects:
  user.create:
    system: sqlite
    format:
      table: USER
    schema:
      type: object
      properties:
        id:
          type: id.integer
        name:
          type: person.name

You can create and stream a simulation using the CLI. You can also call the Create Simulation and Stream Simulation Run API endpoints directly.

Effects

A simulation must include at least one effect, or system interaction. See Effect for more details.

Systems

A simulation may define one or more system, e.g.:

systems:
  fileDb:
    import:
      command: cat >> db.jsonl

Effects may reference this system. See Systems for more details.

Seed

You may specify the integer that a simulation uses to seed its random number generator. For example:

seed: 41
entities:
  names:
    schema:
      type: string

Simulation data is deterministic, so changing the seed lets you get a fresh set of data for an otherwise identical simulation.