Releases: dogmatiq/persistencekit
Releases · dogmatiq/persistencekit
Version 0.19.0
Added
- Added
postgres.NewFromDB()for constructing a driver from an existing*sql.DB. - Added
dynamodb.NewFromClient()ands3.NewFromClient()for constructing drivers from existing AWS SDK clients.
Changed
- [BC] Moved
DriverandConfiginterfaces to thedriverpackage; the root package re-exports them as type aliases. - [BC] Changed
New()in each driver package to accept*Configinstead of individual parameters.
Version 0.18.0
Added
- Added
Driverinterface providing access tojournal.BinaryStore,kv.BinaryStore, andset.BinaryStorefrom a single driver. - Added
Configinterface with aNewDriver(context.Context) (Driver, error)method for constructing drivers from configuration. - Added
ParseURL()andFromURL()for constructing aConfigfrom a URL string or*url.URL. - Added
memory,postgres/postgresql,dynamodb, ands3driver packages, each with aConfigstruct,New(),ParseURL(), andFromURL()constructors.
Changed
- [BC] Reorganized AWS driver packages under
driver/aws/dynamodb/anddriver/aws/s3/to mirror the existingdriver/sql/postgres/structure. - Updated to Go 1.26.
Version 0.17.0
Version 0.16.0
Added
- Added
s3kvpackage, an S3-backed implementation ofkv.BinaryStore. - Added
s3setpackage, an S3-backed implementation ofset.BinaryStore. - Added
journal.AdaptiveSearch()andjournal.AdaptiveProbeFuncfor probe-guided journal searches.
Changed
- [BC] Changed
kv.Revisionfrom auint64to an opaquestringtype. - [BC] Changed
kv.Keyspace.Set()to return the newRevisionon success. - Changed telemetry metric names to include a
persistence.<subsystem>.prefix.
Version 0.15.1
Version 0.15.0
Version 0.14.0
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 aConflictErroris returned.- Added
Keyspace.SetUnconditional(), which has the same semantics asSet()prior to this version.
Version 0.13.0
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.StoreandBinaryStore. Useset.WithInterceptor()instead. - [BC] Removed hooks from
memorykv.StoreandBinaryStore. Usekv.WithInterceptor()instead. - [BC] Removed hooks from
memoryjournal.Store. Usejournal.WithInterceptor()instead.