Repository navigation
Sink v0.14.0
Upgrade
This release changes the YAML configuration schema. Migrate server, worker and CLI configuration together using the configuration migration guide, then run sink config check --config /etc/sink/config.yaml before starting the new binary. Duration strings and readable byte sizes are supported. Stored documents, Kafka mutation encoding and topic/group identities are unchanged.
Changes
- Bound synchronous admission by queued request count, retained input bytes, per-store count and wait time. Short bursts can wait for capacity; cancellation releases queue entries and waiting consumes the request deadline.
- Wake eligible waiters individually and reserve known returning-Put sizes, improving useful CPU utilization while preserving per-RPC response budgets and store isolation.
- Add Scan field projection, per-store execution-byte limits and bounded Scan admission. Pair with sink-go v0.7.0 for projected pages and bounded retries of explicitly marked pre-execution admission rejections.
- Reduce Lua environment allocations and preserve cancellation after admission wakeups.
- Align CI, release and sustained qualification to the same immutable production suite with current SDK coverage and historical regression proofs.
Performance and qualification
In the documented synthetic MongoDB test with one Sink container limited to 1 CPU and 256 MiB, returning Put improved from 2,662 to 17,531 successful RPC/s (6.6x); exact Count improved by 29%. A three-minute mixed workload completed 1.71 million RPCs with zero errors and sampled peak RSS of 33.4 MiB. These are measured workload results, not a production sizing guarantee. See the full report.
The final main CI and current seven-store production suite passed against release commit 005a056c89e7540b5a882657267fe0b7f9bfda0c. Coverage includes current Scan projection/retry behavior, bounded synchronous admission, returning-Put reservations, ordinary race tests, and historical regression sensitivity.
The sustained fault qualification ran its workload for 2h 2s with 16 concurrent workers: 67,686 completed cycles and 406,116 logical operations, with 65 reconciled transients and 65 mutation retries. Worker termination, OpenSearch outages and Kafka restarts were followed by readiness recovery, zero ordinary consumer lag/dead letters, and explicit permanent-failure DLQ repair/replay checks. This run used 5c667ad7f34d55cda05b619f0be3c8ebe2c2cf2d; its runtime source is identical to the release commit, which adds only a deterministic test fixture correction. These disposable-backend gates do not substitute for deployment-specific topology and recovery validation.
Installation artifacts
Docker image:
ghcr.io/liran/sink:0.14.0
docker pull ghcr.io/liran/sink:0.14.0Immutable image: ghcr.io/liran/sink@sha256:f777d1d00ad590c7aa0a23d0707c3d16da36adfb567dd9b9efb7284756bee1cc
Standalone binaries for Linux and macOS on amd64 and arm64 are attached to this release.
Verify an archive with checksums.txt before installation.