Changelog
Copy MarkdownAll notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.7.5 - 2026-08-10
Changed
- Track
umadb-proto0.7.5. The proto is byte-identical to 0.7.4 and unchanged since 0.7.0, so there are no wire or public-API changes; this release only aligns the client version with the latest UmaDB.
0.7.4 - 2026-08-10
Changed
- Track
umadb-proto0.7.4. The proto is byte-identical to 0.7.3 and unchanged since 0.7.0, so there are no wire or public-API changes; this release only aligns the client version with the latest UmaDB.
0.7.3 - 2026-08-05
Added
use UmaDbClient, encode: &Jason.encode!/1, decode: &Jason.decode!/1generates a client facade that encodes event payloads on the way in and decodes them on the way out, so payloads no longer need encoding at every call site. Both options are optional and independent, and each accepts a one-argument function, a{module, function}tuple, or a module exportingencode!/1/decode!/1.:raw_databypasses the encoder for already-encoded values, and passing both:dataand:raw_dataraisesArgumentError. The facade also delegatesconnect/2,append/3,head/1,get_tracking_info/2and theUmaDbClient.Builderconstructors.UmaDbClient.Event— the struct returned by facade reads and subscriptions, with the payload decoded,metadataas a plain map, anduuidasnilwhen absent. An event recorded without a payload reads back asdata: nil.UmaDbClient.read/2andUmaDbClient.subscribe/2are unchanged and still returnUmaDb.V1.SequencedEventstructs.UmaDb.V1.SequencedEventgains an optionaltracking_infofield, added to the proto in umadb 0.7.0. Reads and subscriptions now return the tracking cursor that was recorded with the append. The change is additive and wire-compatible.UmaDbClient.Eventexposes it as a%{source: ..., position: ...}map, ornilwhen the event was appended without one.
Changed
BREAKING: the positional four-argument
Builder.eventis replaced byUmaDbClient.Builder.event/1, which takes a keyword list.:typeis required;:tags,:data,:metadataand the new:uuidare optional. Unknown options and a missing:typeraiseArgumentError.# before Builder.event("OrderPlaced", ["order:1"], data, %{"user" => "alice"}) # after Builder.event( type: "OrderPlaced", tags: ["order:1"], data: data, metadata: %{"user" => "alice"} )The new
:uuidoption makes idempotent conditional appends reachable from the builder; previously it required constructing a%UmaDb.V1.Event{}by hand.Track
umadb-proto0.7.3, up from 0.6.4. The only schema change in that range is theSequencedEvent.tracking_infofield noted above, introduced in 0.7.0; 0.7.1 through 0.7.3 are byte-identical to it.
Fixed
- ExDoc
mainpointed atUmadbClientinstead ofUmaDbClient, so the generated documentation's landing page redirected to a nonexistent module page.
Documentation
- Rewrite the README around usage examples: connecting (including TLS), appending
(idempotent retries and optimistic concurrency), reading and querying,
subscribing, head and tracking positions, a data-type reference, error handling,
and end-to-end examples. Also documents current limitations (no API-key auth,
read/2does not surface the head position) and the fact that the streams returned byread/2andsubscribe/2are single-use. - Move the proto regeneration instructions out of the README and into
CLAUDE.md, along with theUmadb.V1vs.UmaDb.V1module-naming caveat.
0.6.7 - 2026-07-24
Changed
- Track
umadb-proto0.6.7. The proto surface (messages, fields, and the fiveDCBRPCs) is unchanged from 0.6.4, so there are no wire or public-API changes; this release only aligns the client version with the latest UmaDB.
0.6.4 - 2026-07-07
Added
- Initial published release: gRPC client for UmaDB's DCB (Dynamic Consistency
Boundary) event store, wrapping
UmaDb.V1.DCB.Stubwithconnect/2,head/1,get_tracking_info/2,append/3,read/2, andsubscribe/2, plusUmaDbClient.Builderconvenience constructors. - Build and publish GitHub Actions workflows.
- MIT license.