Overview

rngo is a data simulation API that builds synthetic datasets that are:

  • realistic
  • on-demand
  • intuitively configured
  • arbitrarily large
  • rapidly generated
  • deterministic

You can use these datasets for a variety of testing, development, and prototyping activities inluding:

  • lower environment application state
  • iterative prototyping
  • property-based integration testing
  • PR environments
  • projected-state load testing

rngo is currently in beta. As a result, I am constantly iterating on and improving the simulation language and platform tooling. I will document and communicate all changes, although some may be disruptive.

Setup

First install the rngo CLI with Homebrew:

brew install rngodev/tap/cli

Next sign up for rngo at app.rngo.dev, create an API key and copy it. Then log into the CLI:

rngo login [API key]

Now you're ready to simulate some data.

First Simulation

Make a file called spec.yml and add the following simulation specification:

seed: 1,
  entities:
    users:
      stream:
        type: object
        properties:
          id:
            type: integer
          name:
            type: string
    posts:
      stream:
        type: object
        properties:
          id:
            type: string
          title:
            type: string
          author:
            type: reference
            entity: users
  

Now run the simulation like this:

rngo sim spec.yml --stream
{"stream":"users","offset":683878,"value":{"id": 1, "name": "Alice Jones"}}
{"stream":"users","offset":729698,"value":{"id": 2, "name": "Bob Hyland"}}
{"stream":"posts","offset":1036600,"value":{"id": 1, "title": "Lorem Impsum"},"author":{"id": 1, "name": "Alice Jones"}}