Skip to content

Releases: dogmatiq/persistencekit

Version 0.19.0

01 May 05:29
v0.19.0
7d4950b

Choose a tag to compare

Version 0.19.0 Pre-release
Pre-release

Added

  • Added postgres.NewFromDB() for constructing a driver from an existing *sql.DB.
  • Added dynamodb.NewFromClient() and s3.NewFromClient() for constructing drivers from existing AWS SDK clients.

Changed

  • [BC] Moved Driver and Config interfaces to the driver package; the root package re-exports them as type aliases.
  • [BC] Changed New() in each driver package to accept *Config instead of individual parameters.

Version 0.18.0

01 May 01:28
v0.18.0
1b4c90f

Choose a tag to compare

Version 0.18.0 Pre-release
Pre-release

Added

  • Added Driver interface providing access to journal.BinaryStore, kv.BinaryStore, and set.BinaryStore from a single driver.
  • Added Config interface with a NewDriver(context.Context) (Driver, error) method for constructing drivers from configuration.
  • Added ParseURL() and FromURL() for constructing a Config from a URL string or *url.URL.
  • Added memory, postgres/postgresql, dynamodb, and s3 driver packages, each with a Config struct, New(), ParseURL(), and FromURL() constructors.

Changed

  • [BC] Reorganized AWS driver packages under driver/aws/dynamodb/ and driver/aws/s3/ to mirror the existing driver/sql/postgres/ structure.
  • Updated to Go 1.26.

Version 0.17.0

25 Apr 11:18
v0.17.0
dcb68d1

Choose a tag to compare

Version 0.17.0 Pre-release
Pre-release

Added

  • [BC] Added Provision() method to journal.Store, kv.Store, and set.Store interfaces, allowing callers to trigger infrastructure provisioning ahead of time.

Version 0.16.0

22 Apr 19:02
v0.16.0
3971437

Choose a tag to compare

Version 0.16.0 Pre-release
Pre-release

Added

  • Added s3kv package, an S3-backed implementation of kv.BinaryStore.
  • Added s3set package, an S3-backed implementation of set.BinaryStore.
  • Added journal.AdaptiveSearch() and journal.AdaptiveProbeFunc for probe-guided journal searches.

Changed

  • [BC] Changed kv.Revision from a uint64 to an opaque string type.
  • [BC] Changed kv.Keyspace.Set() to return the new Revision on success.
  • Changed telemetry metric names to include a persistence.<subsystem>. prefix.

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.