Skip to main content
The engine supports direct environment-variable configuration. For new deployments, use VS_ENGINE_CONFIG with a canonical ventstream.yaml and keep deployment-specific values in references such as env:VS_OS_ENDPOINT. Validation fails when a required reference is missing.

Common

OpenSearch / Elasticsearch sink

Redis sink

These variables are intentionally separate from VS_REDIS_URL and VS_REDIS_KEY_PREFIX, which configure Redis Streams for realtime roles. See the Redis sink guide.

Canonical engine config

VS_ENGINE_CONFIG points at a non-secret YAML file. The file can select the source kind, sink connection reference, routing policy, and larger spec file paths while secrets remain in environment variables or mounted secret providers.
PostgreSQL, MySQL, MongoDB, Neo4j, and OpenSearch accept an optional transport block beneath their connector settings. Publicly trusted certificates need no additional file:
Amazon RDS PostgreSQL and MySQL can use the provider bundle packaged with the engine:
Use ca_file: /run/secrets/database-ca.pem instead for a private CA. verify_full checks both the certificate chain and hostname. Existing configurations keep their current URI or connector behavior when tls is omitted. disabled is the only other mode; weak modes that encrypt without hostname verification are rejected. See Database TLS and trust for the complete decision guide. OpenSearch routing strategies: Redis key-routing strategies use by_output_relation, by_projection_target, fixed, and declarative views. Lookup views are canonical-YAML-only because their selectors, key templates, filters, and value mappings form one versioned contract. See the Redis sink guide for the complete schema.

Fleet-managed configuration

VS_FLEET_APPLIED_CONFIG_PATH is set by the Fleet supervisor in managed mode. When present, the engine reads the staged non-secret configuration envelope, verifies its SHA-256 content digest, rejects top-level secrets, and fails closed before starting data-path roles if the envelope is invalid. Schema version 1 supports these document.specs inline fields. They override the matching legacy file-path environment variables when supplied: Fleet config is for topology, projection, and runtime-safe settings. Keep database passwords, sink credentials, NATS credentials, API keys, and certificates in Kubernetes Secrets or a local secret provider.

Postgres source

Neo4j source

MongoDB source

See the MongoDB connector. Change streams require a replica set or sharded cluster.

MySQL / MariaDB source

See the MySQL connector. Requires binlog_format=ROW and a server_id unique across the replication topology. Joined projections also require binlog_row_image=FULL so child deletes, foreign-key changes, and primary-key changes include complete before/after images.

Kafka / Redpanda source

See the Kafka connector. Consumes Debezium change topics (or raw JSON topics). Resume is the consumer group’s committed offsets, gated on sink durability — no state dir.

Dispatcher / throughput

Adaptive memory

Set an explicit memory budget when capacity must be predictable. Before changing the default event ceiling, measure the largest serialized source event and its projection expansion under the workload’s actual memory limit.

Optional listeners

Bound only when set, as host:port:

Real-time gateways (ws / graphql roles)

See Real-time subscriptions for how these fit together and Realtime brokers for the provider contract. Shared Redis settings apply to both realtime roles: Each suffix also has a role-specific form, VS_WS_REDIS_<SUFFIX> or VS_GRAPHQL_REDIS_<SUFFIX>. A role-specific value takes precedence over the shared value when the gateway roles run as separate processes.

Native WebSocket (ws)

GraphQL subscriptions (graphql)