Connecting to a TimescaleDB database
How to connect Sequin to a TimescaleDB database
This guide provides step-by-step instructions to connect your TimescaleDB database to Sequin. TimescaleDB is an open-source database built on Postgres that’s optimized for time-series data.
Setting up TimescaleDB
If you don’t have a TimescaleDB instance yet, you can set one up using Docker:
Enable logical replication
To determine if logical replication is already enabled for your TimescaleDB instance, you can run the following SQL command:
This command should return logical
. If it doesn’t, you’ll need to enable it by setting wal_level
to logical
.
Configure WAL level
Connect to your TimescaleDB container and edit the PostgreSQL configuration:
You can also find the location of your postgresql.conf
file by running the SQL command show config_file;
.
Provision a Postgres user for Sequin
When in development, it’s probably fine to supply Sequin with an existing user.
However, when in production, you should create a dedicated user for Sequin. The user needs the following permissions:
connect
permission on the database.select
permission on all the tables you want to connect to Sequin.replication
permission to read from replication slots.
Here’s how to create a dedicated user with the minimum required permissions:
To generate a secure password, if you have OpenSSL installed, you can use the following command:
Connect Sequin to your TimescaleDB database
After enabling logical replication, you’ll now connect to your database in Sequin:
Enter connection details in Sequin
In the Sequin Console, click on the “Connect Database” button and enter the credentials for your TimescaleDB database:
- Host: Your TimescaleDB host (e.g.,
localhost
or your Docker machine IP) - Port: 5432 (default Postgres port)
- Database: Your database name
- Username: The sequin database user you created earlier
- Password: The password for your sequin database user
Create a publication
Connect to your database using the SQL client of your choice and execute the following SQL query to create a publication:
Create a replication slot
Next, create a replication slot to capture changes from the publication:
Enter the replication slot details in Sequin
Back in the Sequin Console, enter the name of the replication slot (e.g. sequin_slot
) and publication (e.g. sequin_pub
) you just created. Then, name your database and click “Create Database”.
Create a sink
With your TimescaleDB database connected to Sequin, you are ready to create a sink. Follow one of our guides below to get started:
Stream to Webhooks
Send database changes to your HTTP endpoints to trigger workflows and keep services in sync
Stream to Redis
Stream changes to Redis streams for real-time data processing and caching
Stream to Kafka
Publish database changes to Kafka topics for event streaming and processing
Stream to SQS
Send changes to AWS SQS queues to trigger Lambda functions and other AWS services
Was this page helpful?