Releases: sequinstream/sequin
Release v0.14.6
Fixes a Docker build issue introduced with Kafka compression support in v0.14.5.
Fixed
- Adds
cmaketo Docker build dependencies, required by the updatedkafka_protocol/crc32cerNIF that ships with Kafka compression support.
Release v0.14.4
This release updates the Kafka sink compression field naming for clarity.
Changed
-
Renames the Kafka sink
producer_compressionfield tocompressioninsequin.yamlconfig, and changes the valueno_compressiontonone(#compression-rename). If you use asequin.yamlwith a Kafka sink, update your config:# Before producer_compression: "no_compression" # or "lz4" # After compression: "none" # or "lz4"
Existing database records are migrated automatically on upgrade. See sequin.yaml reference for details.
Release v0.14.3
This release adds two improvements to the Kafka sink: LZ4 producer compression and AWS MSK IAM support in sequin.yaml.
Added
- Adds LZ4 producer compression for the Kafka sink. Set
producer_compression: lz4in the UI or YAML config to compress messages before sending them to Kafka. Defaults to no compression. See docs for details. - Adds AWS MSK IAM authentication support to the Kafka sink YAML config. You can now define MSK IAM credentials (
aws_access_key_id,aws_secret_access_key,aws_region) directly insequin.yaml. See docs for details.
Release v0.14.2
Fixes timeout handling under heavy load.
Fixed
- Catches and retries timeouts when sending messages to the slot processor, preventing crashes under heavy load
Release v0.14.1
Fixes a backwards compatibility issue with older sequin.yaml configuration files.
Fixed
- Fixes error when loading
sequin.yamlfiles that contain the deprecatedmessage_kindfield. The field was deprecated in v0.10.x and removed in v0.14.x, but existing configuration files may still include it. The YAML loader now ignores this field instead of throwing an error.
Release v0.14.0
- Record-type consumers removed: Sequin no longer supports legacy record-type consumers (
message_kind = 'record').- Who is affected: Users with consumers configured to use
message_kind = 'record'.- Note: Record-type consumers have been deprecated since June 2025 (
v0.10.1) and hidden in the docs and console since.
- Note: Record-type consumers have been deprecated since June 2025 (
- Migration: Before upgrading, you'll need to re-create all record-type consumers:
- Ensure you're running Sequin version >=
v0.10.1. - Optionally, create a new transform function to ensure the new message shape matches the older message shape you've been using.
- Re-create each record-type consumer as a new consumer. (Sequin will not let you create new record-type consumers as of
v0.10.1, so the new consumers you create will be valid.) - Sequin will send duplicate messages to your sink for a period (one from your legacy consumer, one from your new consumer).
- When ready, remove the legacy consumer(s).
- Ensure you're running Sequin version >=
- If you are affected and don't perform the migration steps, Sequin will not boot on this new version.
- Who is affected: Users with consumers configured to use
These migration steps are abbreviated because we're not sure anyone is still using record-type consumers in production. If you need help, open a GitHub issue.
Verify if you're affected
Via SQL
To verify if you're affected, on your Sequin config db you can run:
SELECT id, name, message_kind
FROM sequin_config.sink_consumers
WHERE message_kind = 'record';
- If this shows results, you have older consumers with
message_kind = 'record'. - If this returns no results, you can safely upgrade without issue.
Via sequin.yaml
- if any consumer has the property
message_kind: record, you are affected - if
message_kinddoes not appear in your config, or if it is set toeventeverywhere, you are not affected
Why this change
We used to have two consumer types which behaved differently. But over time the differences between them shrank. Now, the only meaningful difference is the default message shape.
With transform functions, the difference is fully meaningless: you can now transform Sequin messages to whatever shape you desire.
Removing the branch in consumer types makes Sequin simpler and easier, both for users and maintainers. There's now just one consumer type, and consumers are customized with filters, transforms, etc.
Release v0.13.24
This release adds support for configuring backfills in YAML, improves UI navigation, and enhances Kinesis and GCP Pub/Sub partition key handling.
Added
- Adds
initial_backfillconfiguration to sequin.yaml. Configure full or partial backfills when creating sinks via YAML. See backfills reference for details. - Adds sort direction dropdown to the consumer messages view. Sort messages by oldest or newest first for easier navigation.
Fixed
- Fixes partition and ordering key handling for Kinesis and GCP Pub/Sub. Keys that exceed maximum byte limits are now automatically compressed using MD5 to ensure delivery.
Release v0.13.23
Release notes for v0.13.23
What's Changed
- README.md: Fix CHANGELOG link by @xtian in #2080
- fix: NATS IPv6 connectivity by @Gabrola in #2073
- elixir_broadway: Update file names to match module names by @xtian in #2081
- feat: upgrade aws_credentials to 1.0.0 for Kubernetes IRSA support by @andrepastore in #2084
New Contributors
- @xtian made their first contribution in #2080
- @Gabrola made their first contribution in #2073
- @andrepastore made their first contribution in #2084
Full Changelog: v0.13.22...v0.13.23
Release v0.13.22
Release notes for v0.13.22
- Add refresh button to table search/select component
- Fix: Apply enrichment to sequin_stream messages
- Feat: Include entity_name in prom entity health metrics
- Feat: Add LocalStack support for SNS sink
- Fix: Close connections after database deleted
- Feat: Improve support for Postgres intervals
- Fix: Counter for enrichment function usage on functions overview page
- Dependency updates:
- Update to Debian Trixie slim
- Update to Elixir 1.19 / OTP 28
Full Changelog: v0.13.21...v0.13.22
Release v0.13.21
Release notes for v0.13.21
Full Changelog: v0.13.19...v0.13.21