Home

Awesome

<div align="center">

Sequin

Postgres CDC to streams and queues like Kafka, SQS, HTTP endpoints, and more

Docs License: MIT

<p align="center"> <a href="https://console.sequinstream.com">Sequinstream.com</a> · <a href="https://sequinstream.com/docs">Documentation</a> · <a href="https://sequinstream.com">Website</a> · <a href="https://discord.gg/BV8wFXvNtY">Discord</a> </p> </div>

What is Sequin?

Sequin is a tool for change data capture (CDC) in Postgres. Sequin makes it easy to stream Postgres rows and changes to streaming platforms and queues (e.g. Kafka and SQS). You can backfill existing rows and stream new changes in real-time.

Sequin even supports native sinks (HTTP GET and webhooks), so you can get started without any other infrastructure.

CDC enables applications and services to track and respond to row-level changes in database tables as they occur. With CDC via Sequin, you can:

  1. Replicate data from your existing tables to other apps, databases, caches, materialized views, or frontend clients.
  2. Build event driven workflows such as triggering side effects when data in Postgres changes.

Sequin itself is built on Postgres. It uses a logical replication slot to detect changes and internal tables to store sink state.

Unlike Debezium, another CDC tool, Sequin doesn't require Kafka or Zookeeper to operate. Sequin is a standalone Docker container that you can deploy next to your Postgres database. Or, you can use our hosted offering.

Sequin is open source/MIT. To help us make this project great, tell us what you're building in our Discord Server.

Sinks

SinkSupportDescription
Kafka✅ Real-time streaming<br />✅ Backfill existing rows
SQS✅ Real-time streaming<br />✅ Backfill existing rows
Redis✅ Real-time streaming<br />✅ Backfill existing rowsXADD to Redis Streams
Webhook Subscription (Native)✅ Real-time streaming<br />✅ Backfill existing rowsSend changes to any HTTP endpoint
HTTP Pull (Native)✅ Real-time streaming<br />✅ Backfill existing rowsConsume changes directly from Sequin with exactly-once processing
NATS JetStreamComing soon(Nov 2024)
Azure EventHubsComing soon(Nov 2024)
Google Pub/SubComing soon(Nov 2024)
Amazon SNSComing soon(Nov 2024)
AWS KinesisComing soon(Dec 2024)
RabbitMQComing soon(Dec 2024)
RedPandaComing soon(Dec 2024)

Killer features

CDC use cases

Sequin works great for CDC use cases like:

Getting started

See our quickstart.

Alternatively, you can try Sequin for free on Sequin Cloud. Follow the instructions in the app to start streaming your data in a couple minutes.

How Sequin works

Sequin connects to any Postgres database. Specify the tables you want to stream, as well as optional filters and transformations. Route changes to sinks like Kafka, SQS, Redis, or HTTP endpoints.

When you setup a sink, you can opt to backfill data from the source table to the sink.

After setup, Sequin will stream new changes to the sink as they occur in real-time. If there are any issues with delivery, Sequin will automatically retry delivery with exponential backoff.

Sequin comes with a web console/UI for configuration.

You can also configure Sequin as code using YAML config files.

Benchmarks

Sequin efficiently captures changes using logical replication. Except at very extreme scale, logical replication adds little overhead to the performance of your database. If your database can handle the transaction, so can Sequin with minimal latency.

Postgres Performance is highly dependent on machine resources. But to give you an idea, a db.m5.xlarge RDS instance (4 vCPU, 16 GB RAM, $260/mo) can handle inserts at 5,000 messages/second, with bursts up to 10k messages/second.

How Sequin compares

<details open> <summary>Sequin vs Debezium</summary>

Sequin vs Debezium

Debezium is also a CDC tool that captures changes from Postgres and streams them to messaging systems like Kafka. Debezium requires significant infrastructure (Kafka, Zookeeper, Connect) to operate.

Sequin provides the same CDC capabilities but with a much simpler setup:

  1. No Kafka required: Sequin doesn't require Kafka or Zookeeper.
  2. Native destinations: With Debezium, you route to destinations via Kafka Connect. With Sequin, you stream directly to your destination of choice. This means simpler setup, fewer transforms, and fewer moving parts.
  3. Full-featured web console: Sequin includes a web console for configuration and monitoring.
</details> <details> <summary>Sequin vs Fivetran/Airbyte</summary>

Sequin vs Fivetran/Airbyte

Fivetran and Airbyte are ETL tools designed primarily for data warehouse ingestion. They excel at moving data in batch intervals (minutes to hours) to analytical databases.

Sequin is purpose-built for real-time operational use cases. Key differences:

  1. Real-time streaming: Versus batch intervals.
  2. Focus on operational destinations: Queues, streams, webhooks, etc. vs data warehouses.
  3. Flexible backfills: Deployed a bug and need to replay the last 2 hours of data? Sequin makes it easy.
</details> <details> <summary>Sequin vs custom CDC solutions</summary>

Sequin vs custom CDC solutions

Many teams build custom CDC solutions using triggers, LISTEN/NOTIFY, or logical replication. While these can work, they often:

Sequin provides all this functionality out of the box:

</details>

Contribute

Sequin is open source (MIT license). The project is just getting started, so the best way to contribute right now is to open an issue or join the Discord Server and let us know what you want to build.