Skip to content

Releases: SwissBorg/akka-persistence-postgres

v0.4.0

07 Nov 12:17
Compare
Choose a tag to compare

Highlights

This release is focused on making migration from JDBC 4.0.0 as frictionless as possible.

Since we decided to extract metadata from the serialised payload and store it in a separate column it is not possible to migrate exiting journal and snapshot store using plain SQL scripts.

Each journal event and snapshot has to be read, deserialised, metadata and tags must be extracted and then everything stored in the new table.

Version 0.4.0 provides all the necessary utils to automate the above process #120 #123

See the official documentation for more informations.

v0.3.5

20 Oct 15:13
918315d
Compare
Choose a tag to compare

Highlights

This release introduces a fix for the major bug in read journal (under some circumstances eventsByTag could ignore the offset and start reading old events).

v0.3.4

19 Oct 19:50
Compare
Choose a tag to compare

Highlights

This release contains improved Migration Tool that fetches journal & snapshot store rows chunk by chunk instead of trying to buffer everything in memory.

v0.3.3

19 Oct 11:36
f76da83
Compare
Choose a tag to compare

Highlights

  • Migration Tool supports plugin configuration paths other than postgres-journal, postgres-snapshot-store and postgres-read-journal #112
  • By default Migration Tool uses journal schema name as the default one #114

Changes

  • slick, slick-hikaricp 3.3.3 (was 3.3.2) #107
  • flyway-core 7.0.3 (was 7.0.2) #108
  • sbt 1.3.13 (was 1.3.10) #109
  • scalafmt-core 2.7.4 (was 2.4.2) #110
  • scalatest 3.2.2 (was 3.2.0) #111

v0.3.2

15 Oct 11:29
350c175
Compare
Choose a tag to compare

Highlights

This release introduces a couple of fixes and improvements.

  • CachedTagIdResolver no longer bothers with nasty WARNs logged by underlying Caffeine #105
  • Make journal event and snapshot metadata more compact.This is done by abbreviating jsonb keys (while the previous, long keys are still supported in the decoder) and skipping entries with blank values. Since the new serialisers are backward compatible, no migration is required. #106

v0.3.1

13 Oct 12:22
6e6905a
Compare
Choose a tag to compare

Highlights

This release introduces a couple of fixes and improvements for the Migration Tool.

  • An Unable to resolve location classpath:db/akka-persistence-postgres/migration error has been eliminated #104
  • Introduced a new configuration key akka-persistence-postgres.migration.v2.parallelism which allows to tune the number of journal conversions being performed in parallel #104

v0.3.0

12 Oct 12:28
be8a583
Compare
Choose a tag to compare

Highlights

  • Store metadata in a separate column and serialize the raw message #91 #94 #95 #98
  • Provide Migration Tool that converts v0.2.0 journal and snapshshot store into v0.3.0 model #96 #100

Migration from 0.2.0 and 0.1.0

In order to migrate from older versions of this plugin you have to run the Migration Tool during the application startup, before persistence extension is initialized.

The provided tool keeps track of already applied migrations, so it performs each of them only once.

Can multiple nodes migrate in parallel?

Migration Tool uses Flyway which coordinates multi-node migrations using database locks. This ensures that even if multiple instances of your application attempt to migrate the database at the same time, it still works.

Adding Migration Tool to your project

The Migration Tool is distributed as a separate artifact that must be added to your libraryDependencies:

libraryDependencies += "com.swissborg" %% "akka-persistence-postgres-migration" % "0.3.0"

Using Migration Tool

Initializing and running the tool is as simple as:

AkkaPersistencePostgresMigration.configure(applicationConfig).build(actorSystem).run

Changes

  • Akka 2.6.10 (was 2.6.5) #103
  • ScalaTest 3.2.0 (was 3.1.2) #103
  • Slick-pg 0.19.3 (was 0.19.2) #103
  • Scafeine 4.0.2 (was 4.0.1) #103
  • PostgreSQL JDBC driver 42.2.17 (was 42.2.12) #103
  • Flyway 7.0.2 #100 #103

v0.2.0

08 Sep 13:16
3d81a9e
Compare
Choose a tag to compare

This release introduces support for partitioning journal by ordering column values (https://swissborg.github.io/akka-persistence-postgres/features#journal-partitioned-by-ordering-offset-values) and an improvement for eventsByTag query (see #86 and #93).