Capture changes and stream data out of Postgres
Capture changes and stream data out of Postgres
Replace tools like SQS, Kafka, and Debezium by streaming data right from your database.
Turn any table into a stream of messages
Turn any table into a stream of messages
Bring your own (or any) Postgres database
Bring your own (or any) Postgres database
Automatic retries, replays, and rewinds
Automatic retries, replays, and rewinds
Simple HTTP interface
Simple HTTP interface
Open source, MIT license
Open source, MIT license
Consumer Group API
Consumer Group API
Consumer Group API
Webhooks
Webhooks
Webhooks
Sync API
Sync API
Sync API
# Receive messages from a consumer
curl -X 'GET' 'https://api.sequinstream.com/consumer/receive'
# Returns
{
"data": [
{
"ack_token": "MTYyeJ7abUjl1pO",
"data": {
"record": {
"id": 1,
"name": "Paul Atreides",
# more fields...
}
}
},
# more messages...
]
}
# Acknowledge a message
curl -X 'POST' 'https://api.sequinstream.com/consumer/ack'
-d '{ "ack_token": ["MTYyeJ7abUjl1pO"] }'
//Sequin pushes rows to your HTTP endpoint
//Example lambda handler:
exports.order_handler = async (event) => {
try {
processOrder(event.data.action, event.data.record);
return {
//message will be ack'd
statusCode: 200,
};
} catch (error) {
console.error('Error:', error);
return {
//message will be nack'd & retried
statusCode: 500,
};
}
};
# Request a stream of data for a user
curl -X 'GET' 'https://api.sequinstream.com/consumer/sync?user_id=123'
# Sequin returns all rows for the user and streams changes
{
"data": [
{
"id": 1,
"description": "Defend Arrakis",
"status": "In Progress"
},
{
"id": 2,
"description": "Master the Voice",
"status": "Completed"
},
# more rows...
],
"cursor": "NjA3"
Guarantees
Guarantees
Guarantees
Capture & deliver every row
Capture & deliver every row
Sequin streams your Postgres data to your applications and services. Sequin never misses an insert, update, or delete and provides exactly-once processing of changes. Your data stays in your database - no need to copy data to a new system or master a new technology.
Sequin streams your Postgres data to your applications and services. Sequin never misses an insert, update, or delete and provides exactly-once processing of changes. Your data stays in your database - no need to copy data to a new system or master a new technology.
Key features
Key features
Key features
A new standard for streaming
A new standard for streaming
Streaming data out of your database typically requires adding complicated dependencies, endless configuration, and blackbox runtimes. Sequin uses the database you already know to give you the features you've always wanted.
Streaming data out of your database typically requires adding complicated dependencies, endless configuration, and blackbox runtimes. Sequin uses the database you already know to give you the features you've always wanted.
SQL routing
Use WHERE clauses to route messages to consumers
function onRow(r) {
switch (r.status) {
case 'active': return JSON.stringify('running');
case 'pending': return JSON.stringify('waiting');
default: return JSON.stringify('unknown');
}
}
function onRow(r) {
switch (r.status) {
case 'active': return JSON.stringify('running');
case 'pending': return JSON.stringify('waiting');
default: return JSON.stringify('unknown');
}
}
Transforms
Transform messages with JS and Go
Rewind
Rewind consumers to any position
Observable
Trace every row from capture through to delivery
How it works
How it works
How it works
Simple, composable parts
Simple, composable parts
Turn any table in your database into a Stream. Consume records using Sequin's HTTP APIs. Use our CLI, web console, and config files to get set up quickly.
Streams
Create streams for tables in your database.
Streams
Create streams for tables in your database.
Change Capture
Change Capture
Console
Console
Config as Code
Config as Code
sequin tunnel --ports=5432:local_db
2024/10/18 17:27:47 client: Connecting to wss://portal.sequinstream.com:443
Establishing tunnels:
Local port 5432 connected to entity local_db
Press Ctrl+C to stop tunnels.
2024/10/18 17:27:48 client: Connected (Latency 71
account:
name: "Playground"
users:
- account: "Playground"
email: "admin@sequinstream.com"
password: "sequinpassword!"
databases:
- name: "sequin-playground"
username: "postgres"
password: "postgres"
hostname: "sequin_postgres"
database: "sequin_playground"
port: 5432
slot_name: "sequin_slot"
publication_name: "sequin_pub"
sequences:
- name: "regions"
database: "sequin-playground"
table_schema: "public"
table_name: "regions"
sort_column_name: "updated_at"
CLI
CLI
Streams
Create streams for tables in your database.
Streams
Create streams for tables in your database.
Config as Code
Config as Code
Change Capture
Change Capture
Console
Console
CLI
CLI
Streams
Create streams for tables in your database.
Change Capture
Console
CLI
Config as Code
Benchmarks
Benchmarks
Benchmarks
Scales like Postgres
Scales like Postgres
Sequin uses logical replication to ensure no change is missed. If your database can handle the transaction, Sequin can stream it with minimal overhead.
Sequin uses logical replication to ensure no change is missed. If your database can handle the transaction, Sequin can stream it with minimal overhead.
Messages / Second
P95 Latency (MS)
We're happy to host
Sequin Cloud
Fully managed service, we handle the infrastructure
Built to scale, tuned to support high message volume
Get started right away
Get started right away
Widely supported
Widely supported
Widely supported
Works with your stack
Works with your framework
Sequin works with any Postgres database (version 12+). Use our CLI to tunnel to localhost, or connect to any cloud provider to start streaming rows. Then, use our SDKs to consume rows in the language you prefer.
Sequin works with any Postgres database (version 12+). Use our CLI to tunnel to localhost, or connect to any cloud provider to start streaming rows. Then, use our SDKs to consume rows in the language you prefer.
sequin-js
npm i @sequinstream/sequin-js --save
sequin-js
npm i @sequinstream/sequin-js --save
sequin-js
npm i @sequinstream/sequin-js --save
sequin-go
go get
sequin-go
go get
sequin-go
go get
sequin-ruby
gem 'sequin', '~> 1'
sequin-ruby
gem 'sequin', '~> 1'
sequin-ruby
gem 'sequin', '~> 1'
sequin-elixir
{:sequin, "~> 0.1.0"
sequin-elixir
{:sequin, "~> 0.1.0"
sequin-elixir
{:sequin, "~> 0.1.0"
Community
Community
Community
Open source
Open source
Sequin is completely open source with an MIT license. Follow us on GitHub. Let us know what you want to see!
Sequin is completely open source with an MIT license. Follow us on GitHub. Let us know what you want to see!
Discord
Join the Sequin Discord server to chat with contributors, get support, and discuss your use case.
Pricing
Pricing
Pricing
Double the value of each row
Double the value of each row
Sequin is the most cost efficient way to stream data. By using the database that stores your data to stream your data, you get twice the value of each row.
Sequin is the most cost efficient way to stream data. By using the database that stores your data to stream your data, you get twice the value of each row.
Max Delivered Rows Per Day
10,000
Max Delivered Rows Per Second
500
Pay as you go
$1.00
/ 100K delivered rows
per 100K delivered rows
Built to stream high throughput tables with bursting writes.
For production apps,
pay-as-you-go
Max Delivered Rows Per Day
Unlimited
Max Delivered Rows Per Second
500
Pro
$300
/ month
per month
For businesses with consistent streams and predictable costs.
For businesses with predictable streams
Max Delivered Rows Per Day
Unlimited
Max Delivered Rows Per Second
2,000
A delivered row is counted each time a row is delivered to a webhook or requested from the Consume API or Sync API.
Ready to stream?
Ready to stream?
Postgres has evolved into a powerful database that can easily serve as the foundation of your stream. Boot Sequin and experience a feature rich stream that is dead simple to run and scale.
Postgres has evolved into a powerful database that can easily serve as the foundation of your stream. Boot Sequin and experience a feature rich stream that is dead simple to run and scale.
Postgres has evolved into a powerful database that can easily serve as the foundation of your stream. Boot Sequin and experience a feature rich stream that is dead simple to run and scale.
©️ 2024 Sequin Labs, Inc. All rights reserved.
©️ 2024 Sequin Labs, Inc. All rights reserved.
©️ 2024 Sequin Labs, Inc. All rights reserved.