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.
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. Requiresbinlog_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, ashost: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.