Repository navigation
Releases
v0.4.2
Source: 727f6003c4e05087b112a653bc412f0ba0004ab3 (merged main).
Image: ghcr.io/batchstream/weir:v0.4.2@sha256:885f052ba31943409a99b442ca74aa02a75665e439f98887684fcd2568c1ce05. Archives are provided for Linux and macOS amd64/arm64; verify them with sha256sum -c SHA256SUMS. weir version reports v0.4.2 and the source revision.
This release builds with Go 1.27.4, which fixes GO-2026-6859, and lets clients resend a Search Native that never reached its backend. The client API and configuration are unchanged from v0.4.1; deploy with weir-charts 0.23.0.
- Search: a Native that fails before it has a backend connection, while connecting (DNS included) or during the TLS handshake, now ends
NATIVE_NOT_STARTEDwith itsUNAVAILABLEfailure instead ofRESPONSE_INCOMPLETE, since nothing was written. weir-go resends such a Native within its resend budget, whatever its method. A deadline or cancellation before the connection also ends it not started. Failures after the connection still endRESPONSE_INCOMPLETE(#168). - Security: Go 1.27.4 fixes GO-2026-6859, an HTTP/1 server crash from a
MaxBytesReaderheader race innet/http, which reached Weir's diagnostics endpoint (#169).
See operations for how to read Native completions.
v0.4.1
Source: 31656bc6d0d7247f222842ce8bd70988d6bdd72b (merged main).
Image: ghcr.io/batchstream/weir:v0.4.1@sha256:d12d95076ce756ffbb07286c135e67acbd3bb58c15b89a12b74fecbc1c4ced15. Archives are provided for Linux and macOS amd64/arm64; verify them with sha256sum -c SHA256SUMS. weir version reports v0.4.1 and the source revision.
This release makes a Search Native that loses its backend exchange before the response head say where and how it failed, so operators can tell connection setup from a backend that dropped the request. The client API and configuration are unchanged from v0.4.0; deploy with weir-charts 0.22.0.
- Search: the
UNAVAILABLEfailure of such a Native names the phase (while connecting, during the TLS handshake, while sending the request, while waiting for or reading the response head) and, when known, the kind (refused,reset,closedortimeout). It still never quotes the backend address (#167).
See operations for how to read Native completions.
v0.4.0
Source: db27d25f0d80798f4e9277c24339d75e945cea62 (merged main).
Image: ghcr.io/batchstream/weir:v0.4.0@sha256:07f07d339e1deff548d8d936561b3a47f585c78dbdefac31f18d420228f61567. Archives are provided for Linux and macOS amd64/arm64; verify them with sha256sum -c SHA256SUMS. weir version reports v0.4.0 and the source revision.
This release folds queued mutations of one record into one write, so a client that keeps rewriting the same records, such as merges into one seller from many product pages, no longer queues behind itself. The client API and configuration are unchanged from v0.3.0; deploy with weir-charts 0.21.0.
- Folding: mutations of one record that share a batch, from one or several streams, run in queue order and each keeps its own result, including when callers leave, writes conflict or fail, or the backend rejects the combined document.
weir_store_folded_mutations_totalcounts them, and the adaptive limit counts a folded batch at its unfolded size (#165, #166). - Search: every mutation but backend expressions folds into one write after one real-time read, conditional on that read, and query-visible mutations wait for one refresh. Search validates only the document the write sends, so a document that a later mutation replaced before the write is never checked (#165).
- MongoDB: puts and deletes of a record collapse to the last of them. Lua programs of a record run in order on the transaction's one read and write each changed document in one ordered bulkWrite and one commit, so validators and unique indexes check every document as they would one program at a time. Creates, replaces and backend expressions still run one at a time (#166).
See batching for the exact semantics.
v0.3.0
Source: 56b193a2252a299d8a1d8661c7fae25bb78c2518 (merged main).
Image: ghcr.io/batchstream/weir:v0.3.0@sha256:6a84f2b3f3ff0776db0f01185d1b0e2cc108cf2e406fbc81b5824206106466b7. Archives are provided for Linux and macOS amd64/arm64; verify them with sha256sum -c SHA256SUMS. weir version reports v0.3.0 and the source revision.
This release is meant to replace Sink for synchronous MongoDB and Search traffic. Configuration and the client API changed since v0.2.0: Weir loads one flat configuration file and serves every hosted Store on one address without a peer directory (#127, #128, #152), and clients need weir-go v0.24.1 with its option API, Native operations and query visibility (#59, #60, #61). Deploy with weir-charts 0.20.0.
- Throughput: concurrent callers share record streams, messages are packed, writes collect for 1 ms, adaptive limits keep backends near capacity as replicas scale, and each Lua source compiles once per process (#134, #136, #137, #139, #147, #148, #160).
- MongoDB: replica-set primaries are discovered and failover never replays a write (#98–#108). A Lua batch whose conflict retries run out is halved instead of failing every member (#161). SCRAM works over an explicit
tls=falsefor networks without TLS, which sends credentials in plaintext (#163). - Search: OpenSearch in Elasticsearch compatibility mode is recognized (#162).
- Overload: Weir sheds against the Go memory limit, and refusals are reported as UNAVAILABLE so clients resend them (#129, #143, #150).
- Operations: runbooks for each chart alert and for Native failures, client keepalive pings, Go 1.27.3 and patched dependencies (#141, #142, #145, #146, #159). Release builds report their tag as the version (#164).
Weir is MIT licensed (#154). See the architecture and configuration.
v0.2.0
Source: 8b8973894c4670f0e4173d223d08544727bc2ae9 (merged main).
Image: ghcr.io/batchstream/weir:v0.2.0@sha256:ea12776d93739a9decb5464df51b13219fa34e4ccb10c8a8b2fd8d3f95fe5fbf. Native Linux amd64 tests, race tests, reproducible builds and anonymous amd64 image smoke completed before this release. Archives are provided for Linux and macOS amd64/arm64; build availability does not imply native production qualification. Windows server builds are unavailable with the current Lua dependency.
Verify downloaded assets with sha256sum -c SHA256SUMS. The binary reports its immutable source identity.
Use the Go SDK and Helm chart. Deployment isolation and backend qualification remain required; see the architecture.
v0.1.0
Source: be155e053f94cc7a6f3e8ce524f639b46f75be16 (merged main).
Image: ghcr.io/batchstream/weir:v0.1.0@sha256:93810bbfb9eb720d0d42296a3e856f60e1d94bdb22279555ad94a8fc79c0f7df. Native Linux amd64/arm64 tests, race tests, reproducible builds and anonymous image smoke completed before this release. Archives are provided for six targets; build availability does not imply native production qualification.
Verify downloaded assets with sha256sum -c SHA256SUMS. The binary reports its immutable source identity.
Use the Go SDK and Helm chart. Deployment isolation and backend qualification remain required; see the production guide.