In this quickstart, you’ll create a real-time data pipeline that streams changes from a Postgres database to a Redpanda cluster. You’ll:

  • Sign up for a Redpanda account
  • Create a Redpanda cluster and topic
  • Boot Sequin
  • Create a sink to stream changes to Redpanda
  • See changes flow from a sample database to Redpanda in real-time

By the end, you’ll have hands-on experience setting up Postgres change data capture (CDC) with Sequin. This same pattern can be used to setup your own Postgres CDC pipeline with Redpanda.

Setup Redpanda

First, let’s get your Redpanda cluster ready:

1

Create a Redpanda account

Sign up for or sign in to your Redpanda account.

Redpanda provides a generous free tier.

2

Create a topic

Once your cluster is ready, create a new topic called products. A single partition is fine.

3

Create a user for Sequin

  1. Navigate to “Security” and click “Create User”.
  2. Enter sequin as the username.
  3. Copy the auto-generated password. You’ll need this in a moment.
  4. For SASL Mechanism, select SCRAM-SHA-256.
  5. Click “Create”.
4

Create an ACL for the Sequin user

Now, create an ACL for the Sequin user to allow it to publish to the products topic:

  1. Navigate to “Security” and to the “ACLs” tab.
  2. Click “Create ACL”.
  3. For “User / Principal”, enter sequin.
  4. For “Host”, enter *. This will let sequin connect from any host.
  5. In the “Topics” section, under “Operations”, toggle “All” to “Allow”.
  6. You can leave the rest of the ACL sections set to their defaults (“Not set”).
  7. Click “Ok”.

You’ve created a Redpanda cluster, topic, and user.

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:
cd sequin-docker-compose && docker compose up -d
2

Verify services are running

Check that Sequin is running using docker ps:

docker ps

You should see output like the following:

CONTAINER ID   IMAGE                                 STATUS          PORTS                                       NAMES
abc123def456   sequinstream/sequin:latest           Up 10 seconds    0.0.0.0:7376->7376/tcp                     sequin
def456ghi789   redis:7.0                            Up 10 seconds    0.0.0.0:6379->6379/tcp                     sequin-redis
ghi789jkl012   postgres:15                          Up 10 seconds    0.0.0.0:5432->5432/tcp                     sequin-postgres

All three containers 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:

2

Login with default credentials

Use the following default credentials to login:

  • Email:
admin@sequinstream.com
  • Password:
sequinpassword!

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:

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:

docker exec -i sequin-sequin_postgres-1 \
  psql -U postgres -d sequin_playground -c \
  "select id, name, price from products;"

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:

  id |         name          | price 
----+-----------------------+-------
  1 | Avocados (3 pack)     |  5.99
  2 | Flank Steak (1 lb)    |  8.99
  3 | Salmon Fillet (12 oz) | 14.99
  4 | Baby Spinach (16 oz)  |  4.99
  5 | Sourdough Bread       |  6.99
  6 | Blueberries (6 oz)    |  3.99
(6 rows)

We’ll make modifications to this table in a bit.

Create a Kafka Sink

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

1

Navigate to Sinks

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

2

Select sink type

Select “Kafka” as the sink type and click “Continue”.

3

Note "Source" configuration

In the “Source” card, note that the sequin-playground database and products table are pre-selected. Leave these defaults:

4

Setup a backfill

In the “Initial backfill” card, click the toggle to enable an initial backfill. You can leave the default start position, which will backfill all existing rows in the products table:

5

Configure "Kafka Configuration"

In the “Kafka Configuration” card, enter your Redpanda connection details:

  • Hosts: Your Redpanda bootstrap server (e.g., seed-xxx.redpanda.com:9092)
    • Find this in “Overview” > “Kafka API” > “Boostrap server URLs”
  • Topic: products
  • SASL Mechanism: Select SCRAM-SHA-256
  • Username: sequin
  • Password: The auto-generated password for the sequin user
  • TLS: Toggle ON
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 Redpanda cluster.

7

Create the sink

You can leave the rest of the defaults. As configured, the Redpanda topic 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 sink.

See changes flow to your Redpanda topic

On the new sink’s overview page, you should see the “Health” status turn green, indicating data is flowing to your topic.

Let’s confirm messages are flowing:

1

Messages tab

Click the “Messages” tab. You’ll see a list of the recently delivered messages:

Sequin indicates it backfilled the products table to your Redpanda topic.

2

View in Redpanda Console

In the Redpanda Console, in the “Topics” tab of your cluster, navigate to the products topic. You should see the messages that were sent from Sequin. These are read events from the initial backfill of the products table:

If the messages haven’t appeared yet, refresh the page.

Messages are flowing from Sequin to your Redpanda topic.

3

Make some changes

Let’s make some changes to the products table and see them flow to your topic.

In your terminal, run the following command to insert a new row into the products table:

docker exec -i sequin-sequin_postgres-1 \
  psql -U postgres -d sequin_playground -c \
  "insert into products (name, price) values ('Organic Honey (16 oz)', 12.99);"

Check your Redpanda Console. After refreshing, you should see a new message corresponding to the inserted row.

Feel free to try other changes:

Each change will appear in your Redpanda topic within a few seconds.

Great work!

You’ve successfully:

  • Set up a complete Postgres change data capture pipeline
  • Created a Redpanda cluster and topic
  • Loaded existing data through a backfill
  • Made changes to the products table
  • Verified changes are flowing to your Redpanda topic

Ready to stream

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