- Boot Sequin
- Connect to a sample playground database
- Create a Sequin Stream to receive database changes
- See your changes flow in real-time
This is the quickstart for streaming Postgres to Sequin Stream. See the how-to guide for an explanation of how to use the Sequin Stream sink or the reference for details on all configuration options.
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
- Download sequin-docker-compose.zip.
- Unzip the file.
- Navigate to the unzipped directory and start the services:
Alternative: Download with curl
Alternative: Download with curl
Alternative: Clone the repository
Alternative: Clone the repository
2
Verify services are running
Check that Sequin is running using You should see output like the following:
docker ps
: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:

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:
The database “Health” should be green.
3
View contents of the products table
Let’s get a sense of what’s in the You should see a list of the rows in the We’ll make modifications to this table in a bit.
products
table. Run the following command:This command connects to the running Postgres container and runs a
psql
command.products
table:Create a Sequin Stream Sink
With the playground database connected, you can create a sink. This sink will send changes to the
products
table to a Sequin Stream:1
Navigate to Sinks
Click “Sinks” in the sidebar navigation, then click “Create Sink”.
2
Select sink type
Select “Sequin Stream” 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:
4
Setup a backfill
In the 
Inital backfill
card, select the public.products
table to initate a backfill when the sink is created.
5
Create the sink
You can leave the rest of the defaults. As configured, the Sequin Stream 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 Sequin Stream.See changes flow to your Sequin Stream
On the new sink’s overview page, you should see the “Health” status turn green, indicating data is flowing to your stream.Let’s confirm messages are flowing:
1
Messages tab
Click the “Messages” tab. You’ll see a bunch of messages are available, pending delivery:

Sequin indicates it backfilled the
products
table to your stream.2
Receive messages
Using the Sequin Stream API, let’s receive some messages. Copy the curl command from the “Overview” tab:
In your terminal, run the If you run the

curl
command. You’ll receive a response with a single message from the initial backfill of the products
table:curl
command again, you’ll receive a different message. That’s because Sequin Stream only re-delivers messages after the visibility timeout expires.Messages are flowing from Sequin to your stream.
3
Make some changes
Let’s make some changes to the Receive messages from your stream again to see the new change. This time, include the Feel free to try other changes:
Each change will appear in your stream within a few seconds.You can acknowledge messages to ensure they’re not delivered again:
products
table and see them flow to your stream.In your terminal, run the following command to insert a new row into the products
table:?batch_size=10
parameter to receive multiple messages at once, like so:Update a product's price
Update a product's price
Change a product's name
Change a product's name
Delete a product
Delete a product
Great work!
- 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 Sequin Stream