# sequinstream/sequin

Postgres change data capture to streams, queues, and search indexes like Kafka, SQS, Elasticsearch, HTTP endpoints, and more

Repository: https://github.com/sequinstream/sequin
Canonical: https://ross.abutalabs.com/products/sequin
Homepage: https://sequinstream.com
Language: Elixir
License: MIT
License Family: permissive
Topics: cdc, change-data-capture, elixir, erlang, kafka, postgres, postgresql, queue, streaming, search
Last push: 2026-02-23T23:39:01+00:00

## Health v2 (maintenance only)
Score: 63/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 69, release rhythm 59, longevity 57
- inputs: {"age_days": 799, "days_push": 191, "days_rel": 196, "gap_med": 0, "n_releases_24m": 280}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2191, forks 147 (observed 2026-08-28T04:06:24.147775+00:00)

## What it is
Sequin is an open-source change data capture (CDC) platform for Postgres, deployed as a standalone Docker container that streams database changes to sinks like Kafka, SQS, GCP Pub/Sub, Redis, Elasticsearch, and webhooks. It supports backfills, exactly-once processing with strict ordering, and includes a web console plus Prometheus/Grafana observability.

## Use cases
- stream postgres changes to kafka
- sync postgres to elasticsearch in real time
- send database change events to sqs or pub/sub
- keep redis cache in sync with postgres
- create audit logs from database changes
- replace debezium for postgres cdc
- backfill existing rows to a queue
- trigger webhooks on postgres row changes

## When to choose
- you need real-time Postgres CDC with sub-second latency and exactly-once delivery
- you want a simple standalone Docker deployment instead of Kafka + Zookeeper + Kafka Connect
- you need to fan out changes to multiple sinks like queues, search indexes, and webhooks
- you need to backfill existing table rows alongside streaming new changes

## When to avoid
- you need batch ETL into a data warehouse on minute-to-hour schedules (use Fivetran or Airbyte)
- your source database is not Postgres
- you cannot run a Docker container next to your database
- you only need Postgres-to-Postgres replication via native logical replication

## Facets
- artifact type: service
- maturity: active
- function: streaming, etl, message-queue, search-engine, webhook, monitoring, self-hosted
- domain: databases, developer-tools
- platform: self-hosted, cloud
- tags: postgres, change-data-capture, cdc, kafka, sqs, elasticsearch, redis, elixir, wal, exactly-once, backfill, data-engineering, messaging, search, real-time, docker, web-server

## Member repositories
- sequinstream/sequin (main) score 63

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:24.147775+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:47:36.051830+00:00, confidence not recorded.
  - readme: https://github.com/sequinstream/sequin (fetched 2026-08-28T04:06:24.147775+00:00, sha a4c8e1d0774b)
  - homepage: https://sequinstream.com (fetched 2026-08-29T10:27:53.674455+00:00, sha e2a8876f2b8a)
  - site_page: https://sequinstream.com/docs (fetched 2026-08-29T10:27:53.684337+00:00, sha a2cc3f5d83b9)
  - site_page: https://sequinstream.com/docs/running-sequin (fetched 2026-08-29T10:27:53.686540+00:00, sha 856bfd37a6f2)
  - site_page: https://sequinstream.com/docs/compare (fetched 2026-08-29T10:27:53.688442+00:00, sha c88b0a0e2657)
- Data as of 2026-08-30T08:39:29.467469+00:00.
