What's New
Workspace Restructure
- Cargo workspace with 12 crates — the monolithic codebase has been restructured into a proper Cargo workspace under
crates/, with clear dependency boundaries, per-crate feature flags, and independent compilation. This significantly improves build times for incremental development and makes the architecture easier to navigate.
SNS Queue Driver
- New
snsqueue driver — publish-only queue backend that pushes webhook jobs to an AWS SNS topic for fan-out to downstream consumers (SQS queues, Lambda functions, HTTP endpoints). Ideal for architectures where multiple services need to react to the same webhook events. Thanks to @lilfaf for the contribution.
Webhook Improvements
- Retry with exponential backoff — webhook delivery now retries with exponential backoff (1s, 2s, 4s, ...) for up to 5 minutes on non-2XX responses or network errors, matching the Pusher specification.
- 3-second disconnect delay —
channel_vacatedandmember_removedwebhooks are delayed 3 seconds with a re-check, so momentary disconnects or page navigations don't trigger spurious webhooks.
Performance
- Reduced lock contention — removed
Mutexfrom Redis cache managers in favor of clone-based concurrency. Reduced global locks across cache, metrics, and queue subsystems.
Bug Fixes
- Fixed partial cluster channel counts in horizontal scaling
- Fixed webhook batching and filter handling
- Fixed Dockerfile for workspace crate structure
- Replaced deprecated
axum_extra::Hostwith direct header extraction; removedaxum-extradependency - Resolved clippy warnings
New Metrics
- Added
process_max_fdsmetric for monitoring file descriptor limits
App Manager: Delta Compression Persistence
- All database app managers (MySQL, PostgreSQL, DynamoDB, ScyllaDB) now correctly persist and retrieve the
channel_delta_compressionfield. Previously this field was silently dropped on read, causing delta compression config to be lost when apps were loaded from a database backend.
Documentation
- Added SNS queue driver documentation
- Added SNS environment variables and config reference
- Included docs site in the main repository
Full Changelog: v3.1.0...v3.2.0