Get started with SNS
Learn how to stream rows and changes from Postgres to Amazon SNS in minutes. Use Sequin to stream Postgres to Lambdas, Kinesis, SQS, and more via SNS.
In this quickstart, you’ll create a real-time data pipeline that streams changes from a Postgres database to an Amazon SNS topic. You’ll:
- Boot Sequin
- Connect to a sample playground database
- Create an SNS topic and subscription
- Set up a sink to sync changes to SNS
- 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 SNS. This same pattern can be used to setup your own Postgres CDC pipeline with SNS.
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.
Create directory and start services
- Download sequin-docker-compose.zip.
- Unzip the file.
- Navigate to the unzipped directory and start the services:
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:
Open the web console
After starting the Docker Compose services, open the Sequin web console at http://localhost:7376:
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:
Navigate to Databases
In the Sequin web console, click Databases in the sidebar.
Select playground database
Click on the pre-configured sequin-playground
database:
The database “Health” should be green.
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 SNS topic
We’ll start by creating an Amazon SNS topic that will receive change events from Sequin.
Open the SNS console
Sign in to the Amazon SNS console. Make sure you’re in the AWS region where you want to create your topic.
Create the topic
Click “Create topic”.
For the type, select “Standard”. For name, enter products-updates
.
Leave the rest of the defaults and click “Create topic”.
Create a subscription
We’ll create an email subscription so you can see notifications arrive in your inbox:
Subscribe an email endpoint
On the topic overview page click “Create subscription”.
Set “Protocol” to “Email” and enter your email address in the “Endpoint” field.
Click “Create Subscription”.
Confirm the subscription
Check your email inbox for a message from Amazon SNS and click the “Confirm subscription” link.
Once confirmed, the subscription’s Status will change to Confirmed
in the SNS console.
If you don’t see the confirmation email, check your spam folder.
You can re-send the confirmation email by clicking “Request confirmation” in the SNS console.
Create an SNS Sink
With the playground database connected and your SNS topic ready, you can create a sink in Sequin. This sink will send changes from the products
table to your SNS topic:
Navigate to Sinks
In Sequin, click “Sinks” in the sidebar navigation, then click “Create Sink”.
Select sink type
Select “Amazon SNS” as the sink type and click “Continue”.
Note "Source" configuration
In the “Source” card, note that the sequin-playground
database and products
table are pre-selected. Leave these defaults:
Setup a backfill
Toggle open the “Initial backfill” card and select “Backfill all rows”:
Configure SNS
In the SNS card, enter your configuration:
- Topic ARN: the ARN of the SNS topic you created earlier
- AWS Access Key ID / Secret Access Key: credentials that have permission to publish to the topic
If you don’t have credentials, you can create a new user for Sequin with write permissions to SNS.
Create the sink
Give your sink a name, like products-sns
, and click “Create Sink”.
Sequin will first backfill the rows in the products
table, then stream every change in real‑time to your SNS topic.
See backfill messages in Sequin
With our initial backfill complete, click the “Messages” tab to see the status of backfill messages. All messages will be marked as “Delivered”:
See backfill notifications in your email
Check your email inbox. You should see an email for each backfill message. The email contains a JSON payload with the backfilled data. Sequin’s message is under the Message
field.
See changes flow to SNS
Now, see how changes flow to SNS in real-time:
Make some changes
In your terminal insert a new row into the products
table:
The change should flow through SNS to your email inbox in a few seconds.
Feel free to try other changes:
Each change will be forwarded to your email inbox via SNS within a few seconds.
Great work!
You’ve successfully:
- Created an SNS topic and confirmed an email subscription
- Loaded existing data through a backfill
- Made changes to the
products
table - Verified notifications are flowing to SNS (and landing in your inbox)
- Set up a complete Postgres change data capture pipeline
Ready to stream
Now you’re ready to connect your own database to Sequin and start streaming changes: