Reference for Sequin’s YAML configuration for infrastructure-as-code deployments.
CONFIG_FILE_PATH
environment variableCONFIG_FILE_YAML
environment variablesequin config export|plan|apply
command groupPG_*
environment variables.slot
block. Alternatively, you can choose to have Sequin create the slot for you by setting create_if_not_exists
to true
:
publication
block. Alternatively, you can choose to have Sequin create the publication for you by setting create_if_not_exists
to true
:
create_if_not_exists
is true
, Sequin will attempt to create the publication if it doesn’t exist. If you specify init_sql
, Sequin will run that SQL to create the publication. Otherwise, Sequin will create a publication for the schema “public”.
await_database
configuration allows you to control how Sequin attempts to connect to your database during startup. This option is most relevant in development environments, where you might be provisioning Sequin and your database at the same time.
By default, Sequin will wait up to 30 seconds for the database to be ready and will retry every 3 seconds. You can customize this behavior by setting the timeout_ms
and interval_ms
options.
actions
to stream. By default, all actions (insert
, update
, delete
) are included. read
events are emitted during backfills and are always included.
message_grouping
field controls whether messages are grouped for ordering purposes. When enabled (default), messages are grouped by primary key or custom grouping columns, ensuring ordered delivery within each group. When disabled, messages are not grouped, which may allow for higher throughput for some sinks.
true
(default): Enable message grouping. Messages are grouped by primary key unless overridden by table-level group_column_names
false
: Disable message grouping. Cannot be used with table-level group_column_names
enrichment
, transform
, filter
, and routing
fields allow you to attach functions to your sink. Each field can be set to either:
functions
section"none"
to explicitly disable that type of functiondestination
configuration varies by sink type. Below are the configurations for each sink type:
credentials
field should contain the JSON key file contents for a service account with the roles/pubsub.publisher
role.
Project ID must be between 6 and 30 characters, start with a letter, and contain only lowercase letters, numbers, and hyphens. Topic ID must be between 3 and 255 characters and match the pattern: [a-zA-Z][a-zA-Z0-9-_.~+%]*
.
.yaml
file.
transform
, filter
, and routing
fields:
functions
section"none"
to explicitly disable that type of function:
, -
, {
, }
, [
, ]
, etc.), it’s recommended to quote the entire reference:
dotenv
to load environment variables from a .env
file before running Sequin commands:
public
schema to both Kafka (for audit logging) and SQS (for microservice communication), using YAML anchors to avoid duplicating the common sink configuration.