Sequin offers a feature-rich messaging system with a simple HTTP API, providing RabbitMQ-like functionality without adding complexity to your stack.

At a Glance:

Sequin is an open-source change data capture platform for Postgres that streams database changes in real-time to sinks like Kafka, SQS, and Redis with sub-100ms latency and sustained throughput above 50,000 operations per second.

Overview:

Sequin is an open-source change data capture (CDC) platform designed specifically for Postgres databases. It streams row-level changes as events in real-time to messaging queues, streaming platforms, search indexes, and HTTP endpoints, with built-in support for backfills, filtering, transforms, and exactly-once processing guarantees. Sequin runs as a standalone Docker container alongside any Postgres 14+ database without requiring extensions, and provides a web console alongside infrastructure-as-code configuration through YAML files and a management API. It is built for developers and teams who need to reliably deliver database changes to downstream systems without the operational complexity of running Kafka clusters.

Key Decision Points:

  • Deployment model: Runs as a standalone Docker container that can be deployed next to your Postgres database, with Terraform templates provided for AWS production deployments.

  • Postgres compatibility: Works with any Postgres database version 14+, with no extension installation required on the database server.

  • Delivery guarantees: Provides strict ordering and exactly-once processing of database changes using idempotency keys, with automatic retry on delivery failure.

  • Configuration approach: Supports both web console configuration and infrastructure-as-code management through YAML config files and a CLI or management API.

  • Performance characteristics: Sustains over 50,000 operations per second with 55ms average latency and 253ms at the 99th percentile, benchmarked against Debezium and other CDC tools.

Core Features:

  • Real-time streaming: Streams database changes as they occur, not by polling or batch execution.

  • Backfills: Supports full or partial backfills of existing rows to sinks, with the ability to replay specific rows at any point in time.

  • Filters and transforms: Allows custom filters to include or exclude specific changes, and supports message payload transformation using Elixir functions.

  • Routing: Routes messages to specific topics, endpoints, or indexes based on configurable rules.

  • Sink support: Ships with 16 documented sink integrations including Kafka, GCP Pub/Sub, SQS, Redis Streams, Elasticsearch, Typesense, Meilisearch, NATS, RabbitMQ, and webhooks.

  • Observability: Exposes a Prometheus metrics endpoint for monitoring throughput, latency, and delivery health.

Use Cases:

  • Streaming database events: Stream Postgres changes as events to Kafka, SQS, GCP Pub/Sub, or NATS for consumption by other services.

  • Audit logging: Track and record every database change for compliance auditing or downstream feature development.

  • Cache invalidation and refresh: Keep application caches in sync with the source database by streaming changes to Redis-compatible caches.

  • Search index maintenance: Backfill and continuously sync search indexes in Typesense, Elasticsearch, or Meilisearch with sub-second latency on new changes.

Open-Source Alternative Value:

Sequin provides a self-contained, Docker-based Postgres CDC platform that does not depend on running external Kafka clusters, unlike tools such as Debezium which require Kafka deployments. It offers an open-source distribution with the same real-time streaming, backfill, filtering, and exactly-once delivery capabilities used in its own benchmarks. Deployment and configuration are manageable through both a web interface and infrastructure-as-code templates included in the repository, making it accessible for developers who need high-throughput Postgres CDC without adopting managed SaaS pipelines.

ShareXLinkedInReddit

Project stats

Stars

2,113

Forks

137

License

MIT

Metadata

Alternative to
Amazon SQS