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 with replays
Automatic retries with replays
Simple HTTP interface
Simple HTTP interface
Open source, MIT license
Open source, MIT license
Consume API
Consume API
Webhooks
Webhooks
Sync API
Sync API
curl -X 'GET' 'https://api.sequinstream.com/consumer/receive'
# Returns
{
"data": [
{
"ack_token": "MTYyeJ7abUjl1pO",
"data": {
"record": {
"id": 1,
"name": "Paul Atreides",
"title": "Duke of Arrakis",
"spice_allocation": 1000,
"is_kwisatz_haderach": true
}
}
},
# more messages...
//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
local json = require "json"
function onRow(r)
return json.encode(r.updated_at)
end
local json = require "json"
function onRow(r)
return json.encode(r.updated_at)
end
Transforms
Transform messages with Lua
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
To stream your Postgres tables, Sequin adds strictly-ordered sequences to each table. You consume records using Sequin's HTTP APIs. Sequin comes with a CLI and console to help you get set up quickly.
To stream your Postgres tables, Sequin adds strictly-ordered sequences to each table. You consume records using Sequin's HTTP APIs. Sequin comes with a CLI and console to help you get set up quickly.
Sequences
Add a Sequence to any table in your database to make it streamable.
Sequences
Add a Sequence to any table in your database to make it streamable.
Webhooks
Webhooks
WAL Pipelines
WAL Pipelines
Consume API
Consume API
CLI
CLI
//Sequin pushes a payload to your HTTP endpoint
//Example lambda handler:
exports.order_handler = async (event) => {
try {
processOrder(event.action, event.record);
return {
//message will be ack'd
statusCode: 200,
};
} catch (error) {
console.error('Error:', error);
return {
//message will be nack'd & retried
statusCode: 500,
};
}
};
Console
Console
curl -X 'GET' 'https://api.sequinstream.com/http_pull_consumers/pull/receive?batch_size=1'
# Returns
{
"record": {
"id": 159263,
"product": "H-100",
"quantity": 100,
"price": 3000000
},
"metadata": {
"table_schema": "public",
"table_name": "orders",
"commit_timestamp": "2024-08-22"
},
"action": "insert",
"changes": null,
"ack_id": "b93cfc27-4884-436c-b0c0-b87320c4dd53"
}
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
Sequences
Add a Sequence to any table in your database to make it streamable.
Sequences
Add a Sequence to any table in your database to make it streamable.
Webhooks
Webhooks
Consume API
Consume API
WAL Pipelines
WAL Pipelines
Console
Console
CLI
CLI
Sequences
Add a Sequence to any table in your database to make it streamable.
Webhooks
Consume API
WAL Pipelines
Console
CLI
Use cases
Use cases
Use cases
Streamline your use case
Streamline your use case
Sequin allows you to turn the database you already know into the stream you need. It's designed to power the vast majority of streaming use cases. No need to master a new piece of infrastructure.
Sequin allows you to turn the database you already know into the stream you need. It's designed to power the vast majority of streaming use cases. No need to master a new piece of infrastructure.
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)
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.
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
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
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.