Skip to main content
In this quickstart, you’ll create a real-time data pipeline that streams changes from a Postgres database to an Amazon SQS queue. You’ll:
  • Boot Sequin
  • Connect to a sample playground database
  • Configure an SQS queue to receive database changes
  • See your changes flow in real-time
By the end, you’ll have hands-on experience setting up Postgres change data capture (CDC) with Sequin and SQS.
This is the quickstart for streaming Postgres to SQS. See the how-to guide for an explanation of how to use the SQS sink or the reference for details on all configuration options.

Prerequisites

  • An AWS account with an SQS queue
  • IAM credentials with SQS access
For this quickstart, you can use an existing IAM user with broad SQS permissions. For production use cases, we recommend creating a dedicated IAM user for Sequin with the following policy:
Replace <your-queue-arn> with your queue’s ARN (e.g., arn:aws:sqs:us-east-1:123456789012:my-queue).

Run Sequin

The easiest way to get started with Sequin is with our Docker Compose file. This file starts a Postgres database, Redis instance, and Sequin server.
1

Create directory and start services

  1. Download sequin-docker-compose.zip.
  2. Unzip the file.
  3. Navigate to the unzipped directory and start the services:
2

Verify services are running

Check that Sequin is running using docker ps:
You should see output like the following:
Sequin, Postgres, Redis, Prometheus, and Grafana should be up and running (status: Up).

Login

The Docker Compose file automatically configures Sequin with an admin user and a playground database.Let’s log in to the Sequin web console:
1

Open the web console

After starting the Docker Compose services, open the Sequin web console at http://localhost:7376:
Sequin login page, allowing login with default credentials
2

Login with default credentials

Use the following default credentials to login:
  • Email:
  • Password:

View the playground database

To get you started quickly, Sequin’s Docker Compose file creates a logical database called sequin_playground with a sample dataset in the public.products table.Let’s take a look:
1

Navigate to Databases

In the Sequin web console, click Databases in the sidebar.
2

Select playground database

Click on the pre-configured sequin-playground database:
Playground database
The database “Health” should be green.
3

View contents of the products table

Let’s get a sense of what’s in the products table. Run the following command:
This command connects to the running Postgres container and runs a psql command.
You should see a list of the rows in the products table:
We’ll make modifications to this table in a bit.

Create an SQS Sink

With the playground database connected, you can create a sink. This sink will send changes to the products table to your SQS queue:
1

Navigate to Sinks

Click “Sinks” in the sidebar navigation, then click “Create Sink”.
2

Select sink type

Select “Amazon SQS” as the sink type and click “Continue”.
3

Note "Source" configuration

In the “Source” card, note that the sequin-playground database is selected and all schemas and tables are included. Leave these defaults:
Source card showing the sequin_playground database and products table
4

Setup a backfill

In the Inital backfill card, select the public.products table to initate a backfill when the sink is created.
Initial backfill card with public.products table selected
5

Configure "SQS Queue"

In the “SQS Configuration” card, enter your queue details:
  • Queue URL: The full URL of your SQS queue (e.g., https://sqs.us-east-1.amazonaws.com/123456789012/my-queue)
  • AWS Access Key ID: An AWS access key with SQS permissions
  • AWS Secret Access Key: The corresponding AWS secret key
SQS configuration card
6

Test the connection

At the bottom of the form, click the “Test Connection” button. If you provided proper credentials, it should succeed.
Sequin can connect to your SQS queue.
7

Create the sink

You can leave the rest of the defaults. As configured, the SQS queue will first receive a backfill of all rows currently in the products table. Then, it will receive all changes to the products table in real-time.Click “Create Sink” to finish setting up your SQS sink.

See changes flow to your SQS queue

On the new sink’s overview page, you should see the “Health” status turn green, indicating data is flowing to your SQS queue.Let’s confirm messages are flowing:
1

Messages tab

Click the “Messages” tab. You’ll see a list of the recently delivered messages:
List of recently delivered messages
Sequin indicates it backfilled the products table to your SQS queue.
2

View in SQS Console

Open the AWS Console and navigate to your SQS queue. Click “Send and receive messages” then “Poll for messages”. You should see the messages have arrived from Sequin:
SQS Console showing polling for messages
Click on a message to view its contents. The messages are read events from the initial backfill of the products table.
Messages are flowing from Sequin to your SQS queue.
3

Make some changes

Let’s make some changes to the products table and see them flow to your queue.In your terminal, run the following command to insert a new row into the products table:
In the “Poll for messages” widget in the SQS Console, you should see the new message appear.Feel free to try other changes:
Each change will appear in your SQS queue within a few seconds.
Great work!
You’ve successfully:
  • Set up a complete Postgres change data capture pipeline
  • Loaded existing data through a backfill
  • Made changes to the products table
  • Verified changes are flowing to your SQS queue

Ready to stream

Now you’re ready to connect your own database to Sequin and start streaming changes:

Guide: Connect Postgres

Connect your Postgres database to Sequin.

Guide: Setting up an SQS sink

Setup an SQS sink to send changes to your queue.