Releases: nactio/nact
v7.3.0
Added Persistent Queries
This new feature is especially for architectures which may require a CQRS approach.
A persistentQuery is similar to an actor, except it cannot cannot persist messages, does not have context and checks the event store each time it is invoked for messages it has not yet processed (later versions may may use of streaming). Additionally a persistent query supports snapshotting of state, making it ideal as an event model.
Usage is below, however a more detailed tutorial is to follow on nact.io once the reason version is published:
let query = persistentQuery(
system,
(result, msg) => apply(result,msg),
'persistenceKey',
{ cacheDuration: 10 *minutes, snapshotKey: 'test', snapshotEvery: 5 * messages }
);
let result = await query();
Removed implicit shutdown
Changes
- Former behaviour was for an stateful/persistent actor to shutdown if it the next state was a falsey value. This has been removed as it isn't hugely useful and is a little bit too implicit for my liking. Think it creates confusion more than anything else.
- Adjusted snapshotting behavior to discretely snapshot. This means that snapshots only are scheduled after a message has been completely processed.
- Removed some branching.
- Removed some allocations
- Added hooks for encoders and decoders for both persistent messages and snapshots. This will make the reason wrapper of nact a lot more efficient. (It's currently performing a json serialize/deserialize every message, a massive hack that was done as an emergency fix in a production scenario)
v6.1.0
Fixed a bug involving resets on crash and the persistent actor
Removed rxjs from nact
Please note that the Postgres Persistence engine is also required to be upgraded with this breaking change.
The only user facing change is that the state$ operator has been removed as was previously announced.
v5.0.0: Merge pull request #41 from ncthbrt/refactor/supervision
Specifying a supervision policy has now been moved to the child rather than the parent. This is to allow ReasonNact to correctly type the policy and include the message which resulted in the fault. Please see https://nact.io/lesson/javascript/supervision for changes to usage.
v4.4.4
v4.4.3
Minor Bug Fix
v4.4.2 Fixed bug