Connections
kurrentdb
Commentary
added in 0.3.0
Connects to KurrentDB. Credentials are supplied through the connectionConfig's url parameter.
A new write request will be executed every 20 ms or 500 events, whichever happens first. You can override event count/write timing with batchConfigs. 1
Examples
Configuring the connection
Basic connection configuration for KurrentDB. Optionally, set batchConfigs to control how frequently writes are issued. In this example, a write request is executed whenever 500 milliseconds pass or 5000 events are accumulated—whichever comes first.
{
    "connections": {
        "kurrent": {
            "kind": "kurrentdb",
            "connectionConfigs": {
                "url": "kurrentdb://myhost:2113"
            },
            "batchConfigs": {
                "lingerMs": 500,
                "batchEvents": 5000
            }
        }
    }
}
Setting event data
Use the data and metadata fields to set event payload data.
{
    "generators": [
        {
            "stream": "sandbox",
            "eventId": {
                "_gen": "uuid"
            },
            "eventType": "publicationEvents",
            "data": {
                "n": {
                    "_gen": "normalDistribution",
                    "mean": 40,
                    "sd": 2
                }
            },
            "metadata": {
                "tag": "v1",
                "timestamp": {
                    "_gen": "now"
                }
            }
        }
    ],
    "connections": {
        "kurrent": {
            "kind": "kurrentdb",
            "connectionConfigs": {
                "url": "kurrentdb://myhost:2113"
            }
        }
    }
}
Specification
Connection JSON schema
{
    "type": "object",
    "properties": {
        "kind": {
            "type": "string",
            "const": "kurrentdb"
        },
        "connectionConfigs": {
            "type": "object",
            "properties": {
                "url": {
                    "type": "string"
                }
            },
            "required": [
                "url"
            ]
        }
    },
    "required": [
        "connectionConfigs"
    ]
}
Generator JSON schema
{
    "type": "object",
    "properties": {
        "stream": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "streamSuffix": {
            "oneOf": [
                {
                    "type": "string"
                },
                {
                    "type": "object",
                    "properties": {
                        "_gen": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "_gen"
                    ]
                }
            ]
        },
        "eventId": {
            "oneOf": [
                {
                    "type": "string"
                },
                {
                    "type": "object",
                    "properties": {
                        "_gen": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "_gen"
                    ]
                }
            ]
        },
        "eventType": {
            "oneOf": [
                {
                    "type": "string"
                },
                {
                    "type": "object",
                    "properties": {
                        "_gen": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "_gen"
                    ]
                }
            ]
        },
        "data": {
            "type": "object"
        },
        "metadata": {
            "type": "object"
        },
        "localConfigs": {
            "type": "object",
            "properties": {
                "throttleMs": {
                    "oneOf": [
                        {
                            "type": "number",
                            "minimum": 0
                        },
                        {
                            "type": "object",
                            "properties": {
                                "_gen": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "_gen"
                            ]
                        }
                    ]
                },
                "maxEvents": {
                    "oneOf": [
                        {
                            "type": "integer",
                            "minimum": 0
                        },
                        {
                            "type": "object",
                            "properties": {
                                "_gen": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "_gen"
                            ]
                        }
                    ]
                },
                "kafkaKeyProtobufHint": {
                    "type": "object",
                    "properties": {
                        "schemaFile": {
                            "type": "string"
                        },
                        "message": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "schemaFile",
                        "message"
                    ]
                },
                "jsonSchemaHint": {
                    "type": "object"
                },
                "maxBytes": {
                    "type": "integer",
                    "minimum": 1
                },
                "discard": {
                    "type": "object",
                    "properties": {
                        "rate": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                        },
                        "retainHistory": {
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "rate"
                    ]
                },
                "repeat": {
                    "type": "object",
                    "properties": {
                        "rate": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                        },
                        "times": {
                            "oneOf": [
                                {
                                    "type": "integer",
                                    "minimum": 0
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "_gen": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "_gen"
                                    ]
                                }
                            ]
                        }
                    },
                    "required": [
                        "rate",
                        "times"
                    ]
                },
                "protobufSchemaHint": {
                    "type": "object",
                    "patternProperties": {
                        "^.*$": {
                            "type": "object",
                            "properties": {
                                "schemaFile": {
                                    "type": "string"
                                },
                                "message": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "schemaFile",
                                "message"
                            ]
                        }
                    }
                },
                "maxHistoryEvents": {
                    "type": "integer",
                    "minimum": 0
                },
                "maxMs": {
                    "type": "integer",
                    "minimum": 0
                },
                "time": {
                    "type": "integer"
                },
                "events": {
                    "type": "object",
                    "properties": {
                        "exactly": {
                            "oneOf": [
                                {
                                    "type": "integer",
                                    "minimum": 0
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "_gen": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "_gen"
                                    ]
                                }
                            ]
                        }
                    }
                },
                "delay": {
                    "type": "object",
                    "properties": {
                        "rate": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                        },
                        "ms": {
                            "oneOf": [
                                {
                                    "type": "integer",
                                    "minimum": 0
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "_gen": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "_gen"
                                    ]
                                }
                            ]
                        }
                    },
                    "required": [
                        "rate",
                        "ms"
                    ]
                },
                "history": {
                    "type": "object",
                    "properties": {
                        "events": {
                            "type": "object",
                            "properties": {
                                "max": {
                                    "type": "integer",
                                    "minimum": 0
                                }
                            }
                        }
                    }
                },
                "avroSchemaHint": {
                    "type": "object"
                },
                "throttle": {
                    "type": "object",
                    "properties": {
                        "ms": {
                            "oneOf": [
                                {
                                    "type": "number",
                                    "minimum": 0
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "_gen": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "_gen"
                                    ]
                                }
                            ]
                        }
                    }
                },
                "throughput": {
                    "oneOf": [
                        {
                            "type": "integer",
                            "minimum": 1
                        },
                        {
                            "type": "object",
                            "properties": {
                                "_gen": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "_gen"
                            ]
                        }
                    ]
                },
                "timeMultiplier": {
                    "oneOf": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "object",
                            "properties": {
                                "_gen": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "_gen"
                            ]
                        }
                    ]
                },
                "kafkaValueProtobufHint": {
                    "type": "object",
                    "properties": {
                        "schemaFile": {
                            "type": "string"
                        },
                        "message": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "schemaFile",
                        "message"
                    ]
                }
            }
        }
    },
    "required": [
        "stream",
        "eventType",
        "data"
    ]
}