0.3.1 (2026-04-28)

Miscellaneous Chores

0.3.0 (2026-04-28)

⚠ BREAKING CHANGES

  • collapse node-pinned scan and query APIs
  • tier 2 cluster correctness
  • NodeTransport.command/2 is now command/3 with a deadline_ms argument. All implementers (Transport.Tcp, Transport.Fake) and call sites (Aerospike.Get) updated.

Features

  • add advanced operate and geo breadth (f98ae5c)
  • add AeroMarketLive example (8d15f99)
  • add Aerospike.Repo facade (568ad45)
  • add broader batch APIs (bdc0be1)
  • add cluster streaming and routing support (21f2e29)
  • add demo parity record features (efc85b3)
  • add executable demo examples (d9b961a)
  • add expression-backed server features (143eebb)
  • add node-targeted info facade (1b71724)
  • add raw payload and admin edge parity (8576aaf)
  • add remaining API gap matrix surfaces (e871d7d)
  • api: add missing public surface helpers (0d934e0)
  • auth: user/password session login with per-node token cache (b2f7024)
  • bench: add benchmark harness for the spike repo (7f69749)
  • cluster: improve seed recovery and stream scans (103e036)
  • demo: add policy and CDT expression examples (73e8611)
  • document public API helpers (a65957e)
  • expand expression and policy support (800db3b)
  • expressions: add expression filter foundation (ad1c123)
  • foundational spike + Tier 1 supervision and pool (1d6f3b5)
  • get: wire cluster-level :use_compression through node_handle (d5bc5b9)
  • harden spike operator and query surface (93540b7)
  • namespace: remap internal modules behind cluster boundaries (def1637)
  • normalize policy integer APIs (24c8fb1)
  • plumb idle-timeout and TCP tuning opts end-to-end (5e1de56)
  • promote spike as the new aerospike_driver (8601f8c)
  • protocol: support direct list and map write values (efc85b3)
  • query: add finalized aggregate reduction (6b4a480)
  • reads: support named-bin unary and batch reads (efc85b3)
  • runtime: converge unary and batch execution paths (24f04ad)
  • scan-query: add streaming substrate (b4329ae)
  • scan: expose public scan pagination (efc85b3)
  • telemetry: add :telemetry dep and lock event-name taxonomy (efda72d)
  • telemetry: emit node lifecycle transition events (1271fc9)
  • telemetry: emit pool checkout, command, info, and retry events (71bd9fd)
  • tender: add :use_services_alternate toggle for peer discovery (7ce3567)
  • tender: capture per-node features on bootstrap (5a73a3d)
  • tender: per-node tend-cycle histogram and telemetry spans (72926cf)
  • tier 1.5 pool hardening (aa2b135)
  • tier 2 cluster correctness (a813086)
  • transport: add stream transport support (40d0aab)
  • transport: opt-in compressed AS_MSG send above 128-byte threshold (a57f707)
  • transport: TLS variant with standard, mTLS, and PKI modes (70cb39e)
  • transport: validate proto headers and inflate compressed replies (972e3b0)
  • write: add record-exists and durable-delete policies (efc85b3)

Bug Fixes

  • batch: avoid sorting already ordered results (f1f7fbb)
  • centralize spike retry classification (1c48464)
  • docs: avoid hidden policy integer type references in public docs (24c8fb1)
  • keep driver repo self-contained (a37f539)
  • keep validation checks passing (5fef606)
  • metrics: reset runtime counters reliably (8df9c10)
  • operate: align mixed write/read proofs with live server replies (93540b7)
  • policy: randomize foreground/background task ids\nfix(txn): generate signed 64-bit transaction ids from strong randomness\ntest(transport): broaden unit and integration coverage for transport, protocol, admin, and scan paths (103e036)
  • policy: unify command policy handling (65bd7dd)
  • protocol: avoid reversing decoded AS_MSG parts (54d0852)
  • protocol: optimize batch response parsing (db71e1b)
  • protocol: optimize record response parsing (ea2ce01)
  • protocol: reduce codec hot path overhead (8519f3c)
  • query: return background query execute task handles (d9b961a)
  • repo: stop generated repos from exposing deprecated scan aliases (8d15f99)
  • run cluster-only integration tests on cluster profile (cc92cbe)
  • runtime: align spike contracts with execution ownership (949920a)
  • stabilize cluster integration tests (1f517ba)
  • stabilize UDF lifecycle cleanup (aa8c058)
  • startup: make hosts the public seed option (b7435ca)
  • telemetry: normalize telemetry emission points (21f2e29)
  • test: add local cluster setup and quiet teardown noise (ef379b2)
  • test: avoid stopped cluster cleanup in put payload integration tests (d9b961a)
  • test: harden flaky async cleanup and telemetry assertions (8030917)
  • test: select integration suites by tag (6cf8e0b)
  • test: stabilize router ets cleanup (9b1b76f)
  • test: stabilize set truncate integration coverage (3babf0b)
  • txn: normalize task helper contracts exposed by deterministic coverage (93540b7)

Performance Improvements

  • batch: optimize batch request routing (a48cabb)
  • metrics: reduce runtime metrics overhead (dbc6326)
  • optimize batch result conversion (9e1b105)
  • router: optimize sequence replica selection (2a2514f)
  • scan: optimize scan response operation parsing (f639768)

Miscellaneous Chores

Code Refactoring

  • collapse node-pinned scan and query APIs (8e2ace2)

[Unreleased]

0.3.0 (2026-04-27)

Changed

  • Replace the previous library implementation with the OTP-native driver that was developed in aerospike_driver.
  • Raise the supported Elixir baseline to ~> 1.18.
  • Keep the package name, application name, GitHub URL, and HexDocs URL on the existing aerospike_driver line so consumers can upgrade without changing dependency names.

Features

  • Add a supervised cluster runtime with partition-aware routing, node tending, pool warmup, runtime stats, telemetry, and retry-aware command execution.
  • Add TCP, TLS, mTLS, PKI authentication, user/password authentication, and per-node session token handling.
  • Add record commands for get, get-header, put, exists, touch, delete, add, append, prepend, and single-record operation lists.
  • Add batch reads, writes, deletes, operation lists, and record UDF calls through Aerospike.Batch.
  • Add scans, secondary-index queries, pagination, streaming, query counts, background query execution, and query aggregates.
  • Add secondary-index lifecycle helpers, including scalar, collection-element, geospatial, and expression-backed index support.
  • Add server-side expression builders, command filters, expression operations, XDR filters, and expression-backed server features.
  • Add CDT operation builders for list, map, bit, HLL, nested contexts, and geospatial values.
  • Add UDF registration/removal/listing, record UDF execution, and Lua aggregate support.
  • Add Enterprise security administration helpers for users, PKI users, roles, privileges, whitelists, and quotas.
  • Add Enterprise multi-record transaction support, including commit, abort, and transaction roll helpers.
  • Add raw info/admin helpers, truncate, per-node info, node listing, runtime metrics controls, and raw payload write support for advanced tooling.
  • Add user guides covering startup, record operations, batch, operate/CDT/geo, scans and queries, expressions, UDFs, security, transactions, and telemetry.

Bug Fixes

  • Centralize retry classification and align command execution ownership across unary, batch, scan, and query paths.
  • Stabilize runtime counter reset, UDF lifecycle cleanup, cluster seed recovery, router table cleanup, async test cleanup, and telemetry assertions.
  • Optimize record, batch, and AS_MSG response parsing while preserving ordered batch results.

Performance Improvements

  • Optimize batch routing, batch result conversion, scan response operation parsing, sequence replica selection, and runtime metrics overhead.
  • Defer tender debug log message construction to avoid work when debug logging is disabled.

0.2.0 (2026-04-09)

Features

  • bench: add multi-node stream concurrency benchmark suite (d1e7367)
  • bench: simplify benchmark workflow and developer docs (cb79e66)
  • circuit-breaker: add policy-driven failure gating across operations (53a1288)
  • geo: add typed geospatial API and docs updates (87bf2fb)
  • stream: enable concurrent multi-node stream fan-out (20d1ca9)

Bug Fixes

  • crud: remove unreachable overload error match (caf7232)
  • protocol: reduce batch response parse allocations with size-based skipping (8408997)
  • protocol: switch asm message encode pipeline to iodata (258d8e6)
  • repo: remove constant conn warning and stabilize concurrent stream test (418843d)

Performance Improvements

  • batch-encoder: use iodata accumulation instead of binary concat (74d6c1d)

0.1.1 (2026-04-08)

Features

  • add Aerospike.Ctx for nested CDT paths (51ccf7c)
  • add Aerospike.Op primitive operate builders (919926b)
  • add Aerospike.Op.Bit bitwise CDT operations (d7b09e9)
  • add Aerospike.Op.HLL HyperLogLog operations (ad9622c)
  • add Aerospike.Op.List CDT operations (67acac8)
  • add Aerospike.Op.Map CDT operations (1c553f3)
  • add batch operations, add/append/prepend commands, and streaming support (b1d4271)
  • add enterprise TLS/mTLS demo stack and fix QueryAggregate SC-mode failure (7637155)
  • add minimal MessagePack codec for CDT payloads (54c818a)
  • add operate/4 with policy and wire flag handling (6101730)
  • add Protocol.Exp expression wire encoder (Phase 9, Task 1) (c355dd2)
  • add release please (4a373d7)
  • fix test infrastructure for full suite (cluster + enterprise) (6ccb5a8)
  • Phase 10 - GeoJSON encoding, SC-query streaming, transaction fixes, guides (f74d8c3)
  • Phase 10 - transactions, admin, UDF, secondary indexes (Tasks 1-13) (e175fa4)
  • Phase 8 - Scan, Query, streaming, and pagination (789e7ad)
  • Phase 9 - Expressions (Aerospike.Exp, Op.Exp, CRUD filter) (2abb38c)
  • protocol: add shared CDT MessagePack operation encoder (b39260d)
  • protocol: decode map/list bins and particle-wrap nested MessagePack (03e6435)
  • repo: add Aerospike.Repo and migrate demo to repo-first APIs (f2f6342)
  • support tuple key inputs across public APIs (ba78c3c)

Bug Fixes

  • ci: increase truncate test timeout for slow CI runners (1a3bc09)
  • ci: resolve enterprise roster race condition on slow CI runners (a53978a)
  • protocol: encode CDT {:bytes} as particle BLOB in MessagePack (2cd3f4c)
  • resolve three pending issues and expand test coverage (68dfe13)
  • scan: paginate all/2 correctly with cursor iteration and max_records cap (1477349)

Miscellaneous Chores