Skip to content

Releases: dogmatiq/persistencekit

Version 0.15.1

06 Feb 21:45
v0.15.1
659da04

Choose a tag to compare

Version 0.15.1 Pre-release
Pre-release

Added

  • Added journal.WithNameTransform(), kv.WithNameTransform() and set.WithNameTransform(), which transform the apply a function to transform the name of each journal, keyspace and set, respectively.

Version 0.15.0

23 Jan 06:05
v0.15.0
22b59b7

Choose a tag to compare

Version 0.15.0 Pre-release
Pre-release

Changed

  • [BC] Changed keyspace revisions to use new kv.Revision type instead of uint64.
  • [BC] The pgkv package now uses bias-encoded revisions, stored in PostgreSQL as signed BIGINT values (PostgreSQL's largest integer type), offering access to the full range of uint64 values.

Version 0.14.0

17 Jan 04:16
v0.14.0
8096c74

Choose a tag to compare

Version 0.14.0 Pre-release
Pre-release

This release adds revision-based OCC support to the kv package.

  • Keyspace.Get() now returns the current revision of the key/value pair.
  • Keyspace.Set() now requires the current revision to be passed as an argument, otherwise a ConflictError is returned.
  • Added Keyspace.SetUnconditional(), which has the same semantics as Set() prior to this version.

Version 0.13.0

04 Dec 10:41
v0.13.0
173d948

Choose a tag to compare

Version 0.13.0 Pre-release
Pre-release

Added

  • Added set.WithInterceptor() to allow intercepting operations on sets.
  • Added kv.WithInterceptor() to allow intercepting operations on keyspaces.
  • Added journal.WithInterceptor() to allow intercepting operations on journals.

Removed

  • [BC] Removed hooks from memoryset.Store and BinaryStore. Use set.WithInterceptor() instead.
  • [BC] Removed hooks from memorykv.Store and BinaryStore. Use kv.WithInterceptor() instead.
  • [BC] Removed hooks from memoryjournal.Store. Use journal.WithInterceptor() instead.

Version 0.12.0

04 Dec 04:47
v0.12.0
930c506

Choose a tag to compare

Version 0.12.0 Pre-release
Pre-release

Added

  • Added set.Set.Range() method to iterate over all members of a set.

Changed

  • [BC] Renamed pgset table from set_value to set_member to match terminology elsewhere.
  • [BC] Renamed dynamoset attribute from V (value) to M (member) to match terminology elsewhere.

Version 0.11.2

02 Dec 08:19
v0.11.2
7dae2f6

Choose a tag to compare

Version 0.11.2 Pre-release
Pre-release

Changed

  • Change telemetry to use enginekit/telemetry package.

Version 0.11.1

23 Nov 05:53
v0.11.1
2c6f0b4

Choose a tag to compare

Version 0.11.1 Pre-release
Pre-release

Fixed

  • DynamoDB based implementations now wait for table creation to complete before returning from dynamojournal.NewBinaryStore() and dynamokv.NewBinaryStore(). This prevents potential issues due to the asynchronous nature of DynamoDB table creation, which is not evident when using the local DynamoDB emulator.

Version 0.11.0

30 May 22:26
v0.11.0
ea0ab7b

Choose a tag to compare

Version 0.11.0 Pre-release
Pre-release

Changed

  • [BC] The journal.WithTelemetry(), kv.WithTelemetry() and set.WithTelemetry() functions now require an OpenTelemetry LoggerProvider instead of an slog.Logger. This change means that all persistencekit telemetry is now "OpenTelemetry native", ensuring that all log messages are correlated with spans when tracing is enabled.
  • Changed metric instruments to use more specific names, such as value_size instead of more generic/network-level names such as io.
  • Added misses metric, for kv.Keyspace.Get() operations that do not find a value in the keyspace.

Version 0.10.2

29 May 04:38
v0.10.2
82fae5f

Choose a tag to compare

Version 0.10.2 Pre-release
Pre-release

Added

  • Added set.NewMarshalingStore(), which wraps a set.BinaryStore with a marshaler.Marshaler to store values of arbitrary types.

Version 0.10.1

29 May 04:24
v0.10.1
b981dfa

Choose a tag to compare

Version 0.10.1 Pre-release
Pre-release

Added

  • Added set package, which provides an abstraction of named sets of values of arbitrary type.
  • Added memoryset package, a memory-based implementation of set.Store.
  • Added dynamoset package, a DynamoDB-based implementation of set.BinaryStore.
  • Added pgset package, a PostgreSQL-based implementation of set.BinaryStore.

Fixed

  • Fixed issue telemetry/tracing issue with kv.Keyspace.Set() that would cause a (potentially unreadable) value to be added to the span attributes when the key was human-readable.