Sockudo 4.4.0 is a feature release focused on Protocol V2 collaboration state and more durable transport options. The headline addition is message annotations: reactions, read receipts, moderation flags, counters, and other derived message state can now live beside Sockudo's versioned durable messages instead of being modeled as separate application events.
Highlights
Protocol V2 message annotations
Release 4.4 adds a Sockudo-native annotation engine for existing versioned messages.
- Summary-first updates through
message.summarypayloads. - Raw annotation streams for audit and custom reducers through
ANNOTATION_SUBSCRIBE. - Signed HTTP APIs to publish, delete, and list annotations:
POST /apps/{appId}/channels/{channelName}/messages/{messageSerial}/annotationsDELETE /apps/{appId}/channels/{channelName}/messages/{messageSerial}/annotations/{annotationSerial}GET /apps/{appId}/channels/{channelName}/messages/{messageSerial}/annotations
- Built-in summarizers for common realtime UX:
total.v1for simple counters.flag.v1for one active contribution per identified client.distinct.v1for reaction sets where a user can hold multiple named values.unique.v1for one-choice reactions or statuses.multiple.v1for weighted or repeated moderation-style counts.
- Channel policy gates through
annotations_enabledso operators can opt in by app or namespace.
Annotations are Protocol V2 only. Pusher-compatible V1 clients continue to receive the existing V1 wire shape and do not receive annotation summaries or raw annotation events.
Cluster-aware annotation state
Annotation summaries are materialized from retained annotation events and are designed for multi-node Sockudo deployments.
- Annotation serials follow the same globally ordered model as mutable messages.
- Summary projections use a
last_annotation_serialwatermark. - Cold or stale projections can be rebuilt from the authoritative annotation event log.
- Summary fanout uses the normal channel broadcast path so subscribers on other nodes receive updates.
Apache Iggy adapter and queue driver
Sockudo 4.4 adds Apache Iggy as another durable transport option for horizontal deployments.
- New
iggyfeature flag. - Adapter and queue driver support.
- Configuration support for
iggy://connection strings, consumer names, and partition counts. - Multinode validation and operational documentation for broker partition semantics and lifecycle handling.
Operator visibility
This release adds observability for annotation volume, delivery, clipping, and projection rebuild behavior.
Prometheus metrics include:
sockudo_annotations_published_total{channel,type}sockudo_annotations_deleted_total{channel,type}sockudo_annotation_summary_deliveries_total{channel}sockudo_annotation_summary_clipped_total{channel,type}sockudo_annotation_projection_rebuild_total{channel}sockudo_annotation_projection_rebuild_duration_seconds{channel}
High-signal logs were added for clipped summaries, hot-channel projection rebuilds, and failed annotation fanout.
Configuration
Message annotations require versioned messages and explicit annotation enablement:
[versioned_messages]
enabled = true
[annotations]
enabled = true
[[app_manager.array.apps.policy.channels.channel_namespaces]]
name = "chat"
channel_name_pattern = "^chat:[A-Za-z0-9._-]+$"
annotations_enabled = trueEnabling annotations for a channel implies retained message state for that channel because summaries are derived from stored annotation and message state. Plan retention and storage accordingly.
For Apache Iggy deployments, enable the iggy feature and configure the adapter or queue driver with the Iggy connection settings documented in the server configuration docs.
Install
cargo-binstall
cargo binstall sockudo --version 4.4.0cargo
cargo install sockudo --version 4.4.0Docker
docker pull ghcr.io/sockudo/sockudo:4.4.0
docker pull sockudo/sockudo:4.4.0Direct binary downloads are attached below for Linux, macOS, and Windows.
Platform Support
- Linux x86_64 GNU
- Linux x86_64 musl
- Linux ARM64 GNU
- Linux ARM64 musl
- macOS x86_64 Intel
- macOS ARM64 Apple Silicon
- Windows x86_64
- Docker linux/amd64
- Docker linux/arm64
Compatibility Notes
- Protocol V1 remains Pusher compatible.
- Message annotations are Sockudo Protocol V2 only.
- Raw annotation events are opt-in with
ANNOTATION_SUBSCRIBE; normal subscribers receive summary updates. - Clients should treat annotation summaries as replace-by-type state. They should not rely on seeing every intermediate summary snapshot.
- Browser and mobile clients should use a trusted backend proxy for annotation HTTP operations; app secrets must stay server-side.
What's Changed
- Message annotations by @countradooku in #229
- Apache Iggy adapter and queue driver by @countradooku in #230
- Documentation config path fix by @realmrv in #228
- Release metadata and README update for 4.4.0 in 2e8fda7
New Contributors
Full changelog: v4.3.1...v4.4.0