A sink in Sequin is a destination for your Postgres data.

Common sink behaviors

Guaranteed delivery

Sequin guarantees delivery of messages to sinks. If a message is not delivered successfully, Sequin will retry. Sequin will expontentially backoff the retry interval, up to a maximum of roughly 3 minutes.

Message grouping and ordering

Sequin has the ability to group messages by one or more fields. Changes for rows in the same group are guaranteed to arrive in the order they occurred (i.e. the order they were committed in Postgres) to your sink.

By default, Sequin groups messages by the primary key value(s) of the source row. This means that if a row is updated multiple times, each update event will arrive in order to your sink.

You can specify message grouping behavior when configuring a sink. You can group rows by a single field or multiple fields.

So, for example, instead of grouping by primary key, you could instead group orders by account_id. This means that all changes for a given account_id will be sent to your sink in the order they were committed in Postgres.

All this applies to how Sequin delivers messages to your sink. Whether your sink supports ordered/FIFO processing depends on the sink. See the reference page for your sink for details.

The only sink that doesn’t support ordering out of the box is Redis streams.

SQS supports ordering, but only when configured as a FIFO queue.

Backfill support

Sequin supports backfilling to sinks. See the backfills reference for more details.

Monitoring and debugging

You can view the status of sinks in the Sequin web console.

All sinks have a “Messages” tab that shows the status of messages currently in flight to the sink, recently delivered messages, and messages that have failed delivery.

You can click into any failed message to view the delivery logs and error details.

Individual sink references