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"}}