The fastest Postgres change data capture

Stream data from Postgres directly to Kafka, Redis, and more. Replace complex tools like Debezium and consolidate workflows.

Capture every insert, update, and delete

Works with any Postgres database:

Real-time sink to streams, queues, and more:

Built-in backfills, filters, and transforms

Open source, MIT license

YAML

CLI

API

databases:

- name: "sequin-playground"

username: "postgres"

password: "postgres"

hostname: "sequin_postgres"

database: "sequin_playground"

port: 5432

slot_name: "sequin_slot"

publication_name: "sequin_pub"

tables:

- table_name: "accounts"

table_schema: "public"

sort_column_name: "updated_at"

sinks:

- name: "kafka-sink"

database: "sequin-playground"

table: "public.accounts"

destination:

type: "kafka"

hosts: "kafka1.example.com:9092"

topic: "accounts-topic"

username: "kafka-user"

password: "kafka-password"

sasl_mechanism: "plain"

Performance

Industry-leading performance

Sequin is tuned to Postgres to provide industry-leading performance. If your database can handle the transaction, Sequin will deliver it with minimal overhead. Read more on our benchmarking page →

40,000+

messages per second

40+ MB/s

bandwidth throughput

55ms

average latency

Real-time CDC

Postgres to Kafka

Latency at 10,000 operations / second

6.8x

Sequin · 55 ms

AWS MSK Debezium · 253 ms

Fivetran · 5 min

AirByte · 1+ hours

Guarantees

Capture & deliver
every change

Simplify your architecture by building on strong guarantees. Sequin never misses an insert, update, or delete and delivers every (100%) change to your stream or queue.

Use cases

Streamline your use case

Sequin is designed to power every change data capture use case. No need to master a new piece of infrastructure.

Trigger

Workflows

Create

Audit logs

Sync

Search

Replicate

Tables

Send

Webhooks

Maintain

Caches

// Handle order events and trigger workflows
async function handleOrderWorkflow(change) {
  // Log the change
  await logDatabaseChange(change);
  
  // Only process new orders
  if (change.metadata.table_name === 'orders' && change.action === 'insert') {
    const order = change.record;
    
    // Update inventory for each item
    for (const item of order.items) {
      await updateInventory(item.product_id, -item.quantity);
    }
  }
}

// Update inventory levels and check thresholds
async function updateInventory(productId, quantityChange) {
  const { rows } = await db.query(
    'UPDATE inventory SET quantity = quantity + $1 WHERE product_id = $2 RETURNING quantity',
    [quantityChange, productId]
  );
  // Trigger alert if inventory is low
  if (rows[0].quantity <= 10) {
    await db.query(
      'INSERT INTO inventory_alerts (product_id, current_quantity) VALUES ($1, $2)',
      [productId, rows[0].quantity]
    );
  }
}

Trigger code when Postgres rows change

Build automated workflows from database changes. Sequin captures and delivers every change in your database so you can break monolithic processes into automated, event-driven workflows.

Features

Setting a higher standard

Change data capture typically requires adding complicated dependencies, endless configuration, and blackbox runtimes. Sequin is tailored to Postgres to cut out the complexity and deliver helpful features.

SQL filters

Use WHERE clauses to route changes to your sinks.

def transform(action, record, changes, metadata) do
  first_name = record["first_name"]
  last_name = record["last_name"]
  full_name = first_name <> " " <> last_name

  %{ full_name: full_name }
end

Transforms

Transform messages.

Web Console

A rich web console to easily manage and observe sinks as you build.

Backfill

Backfill at any time.

Observable

Trace every row from capture through to delivery.

Prometheus Metrics + Grafana Dashboard

Plug Sequin into your monitoring and metrics.

Integrations

Drop into your stack

Sequin works with any Postgres database (version 14+) and supports a growing list of sinks to queues and streams. Sequin even supports native sinks (Webhooks and HTTP) so you can get started without any other infrastructure.

AnyPostgres

Stream & Queues

Caches & Search

Testimonials

Loved by developers

"Sequin was incredibly easy to setup and allowed us to quickly establish our real-time knowledge base pipeline. It just works - letting our engineers focus on building features instead of maintaining complicated data infrastructure."

Jinyuan L.

Lead AI Engineer

"Sequin solved our activity feed scaling challenges. Its use of logical replication means our application commits changes faster, as it no longer waits for synchronous audit log writes. With features like transaction annotations, we're able to capture rich context like exactly who made each change. I love what these guys are doing!"

Yahya J.

Lead Developer

"Sequin allows us to capture millions of product changes in our database and replicate them to Typesense, ensuring perfectly accurate user searches. Set it up once and forget it—highly recommend!"

Matheus L.

CTO

"Sequin has become our central event source, reliably streaming database changes to power our Slack alerts, Resend emails, and in-app notifications. Having one dependable source has streamlined our entire architecture."

Johannes K.

CTO

"Sequin’s deliverability guarantees provide an abstraction of an entire class of problems for us. If there’s been an insert, update, or delete - we know our dependent services will get the event."

Mathew N.

Technical Lead

Read more…

Pricing

Plans and pricing

Sequin itself is built on Postgres to provide the most efficient, cost effective change data capture on the market.

Free

For individuals and hobby projects

$0

/mo

Self-host Sequin on your infra with community support

The fastest CDC from Postgres to streams and queues

Docker container to run Sequin

Full-featured with transforms, backfills, CLI, and web console

Community Discord support

Cloud

For teams scaling Sequin

Starting at

$30

/mo

Get started right away with a perfectly tuned deployment. Pay-as-you-grow.

Includes 2 GB / month throughput, then pay-as-you-go.

High-availability with autoscaling

Organization with multi-region accounts

Dedicated support channels

Managed

For enterprise and mission critical

Tailored

A single-tenant deployment of Sequin within your cloud with full support & SLAs.

A custom plan tailored to your requirements

White-glove implementation support

SAML, SSO, and compliance

24 x 7 production support with SLAs

Join the community

Open source, in production

Sequin makes change data capture easier than ever. See what developers are saying and join the community to get started.

Blog

Read about how we're building Sequin, shipping features, and pushing Postgres

Community

Join our Discord server or Slack community to get support, and discuss your use case.

GitHub

Stay up to date with our project, see what's in our latest release, and track what's coming next.