Improved DMGeneratingVersion-support. If nothing has happend since last DMGeneratingVersion (or since start of time), we only save new DMGeneratingVersion to journal if app is actually storing new event.
Stopping error-checking in ClusterListener when JVM/App is shutting down to prevent it sometimes from triggering restart in the middle of a delayed shutdown
1.1.1
7 years ago
Fixing regression-bug in PersistenceIdParserImpl from version 1.0.x to 1.1.0 which used typepath without trailing slash ( / ) by default. PersistenceIdParserImpl.includeSplitCharInTag is now default true
1.1.0
7 years ago
Added AggregateStateBase - It is now possible to return new/extra event from inside state-transition
EventsByTagQuery now supports querying for multiple tags in the same stream
Jdbc-journal can now be configured to use different table-names, enabling the same app to have multiple completely separate journals
1.0.11
7 years ago
Upgraded to Akka 2.4.10
PersistenceQuery's EventsByPersistenceId now also loads new events instantly - No more waiting for the next scheduled read
This is achieved using a Distributed pubSub-mechanism
Exceptions thrown by JacksonJsonSerializer.toBinary when sending msg via akka-remoting no longer brings the connection down
1.0.9.1
7 years ago
Fixing bug in DMGeneratingVersion - Now saving NewDMGeneratingVersionEvent also when there is nothing to fix
1.0.9
7 years ago
Added the concept of DMGeneratingVersion
If you (by mistake?) change the behaviour of an aggregate in such a way that it now sends a different amount of DMs based on the same events,
this will (by default) confuse Akka's AtLeastOnceDelivery-mechanism which will try to resend what it believes is old unconfirmed messages.
This can now be fixed by setting DMGeneratingVersion to a higher int-value. If this is the case, we will see that this is the case,
prevent these messages from beeing sent, and store the info so we wont have this issue in the future.
This feature can be used mulitple times (with multiple new versions) over time.
See test for more info
1.0.8
7 years ago
Fixed bug in ClusterListener-errorDetection - It could wrongly detect error when it saw other alive nodes before it self has joined cluster..
Fixed NPE bug when reading empty snapshots - Oracle treats empty BLOBs as NULL
Introduced GeneralAggregateV2 and AggregateStateV2 which let you co-locate all related logic:
each different state-implementation has their own cmdToEvent, eventToDMs( old name: generateDMs) and eventToState (old name: transition)
InternalCommands (e.g GetState) are now logged with debug even though it is configured to log commands as info
Added skipErrorHandler:Boolean to AggregateError. If true, we skip invoking the custom onError-errorHandler attached to eventResult
Fixed bug in JdbcSnapshotStore related to reading snapshots when not using serializerId
1.0.7
8 years ago
Added new config-file param 'jdbcJournalRuntimeDataFactory' which can be used when using multiple journals with different configuration at the same time.
Introduced GeneralAggregateBase in favor of now deprecated GeneralAggregate
GeneralAggregateBase has a simpler more generic approach to generateDM
Preventing un-needed re-persisting of DurableMessageReceived when we receive the same one multiple times
Added automatic handling of re-received old commands (via DM)
Before: We would process it as a regular command which would fail since we have already processed it and changed our state.
Now: We see that we have successfully processed this command before (sender is re-sending it because it has not yet gotten our confirmation), so we ignore it and re-send the confirm
Improved SeedNodeResolving and Cluster-ErrorDetection
1.0.6
8 years ago
Added canSendAsDurableMessage():Boolean - Use it to check if it is possible to send DM
Fixed bug in findHighestSequenceNr when using (not full) persisteceIds / wildcards
Deprecated generateResultingDurableMessages in GeneralAggregate. Instead use new generateDM (via state), generateDMBefore (via Event), or generateDMAfter (via Event)
generateDMBefore - gets event as input and is invoked BEFORE event has been applied to state ( same as old generateResultingDurableMessages)
generateDMAfter - gets event as input and is invoked AFTER event has been applied to state.
generateDM - gets state as input and is invoked AFTER event has been applied
Fixing #15 - Snapshot-journal now supports SerializerWithStringManifest
Note! - This fix requires a change to the database layout as described here: JdbcJournal