Simulation

A simulation generates data for one or more entities, or logical datasets, over a configurable period of time. For example:

seed: 41
systems:
  sqlite:
    output:
      type: sql
    import:
      command: sqlite3 db.sqlite
entities:
  users:
    system:
      type: sqlite
      table: USER
    stream:
      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 API endpoints directly.

Entities

A simulation must include at least one entity, or logical dataset. See Entity for more details.

Systems

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

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

Entities 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:
    stream:
      type: string

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