nact ⇒ node.js + actors ⇒ your services have never been so µ
Added the ability to read the mailbox in onCrash
and afterStop
event handlers.
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();
Changes
Fixes issue #42
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.
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.