Releases: Tochemey/goakt
v2.12.1
v2.12.0
What's Changed
TLS
support added: All nodes must share the same root Certificate Authority (CA) to ensure a successful handshake. One need to provide when creating the actor system with TLS support both server and client TLS config to ensure successful communication amongst nodes. Refer to the readme section about TLS to see how to enable it.WithRemoting
is deprecated in favor of a new methodWithRemote
which provide better remoting configuration.ClusterConfig
comes with a new setting:WithKVStoreSize
- helps set the key/value storage size. The default value is 20MB
Full Changelog: v2.11.1...v2.12.0
v2.11.1
What's Changed
Metric
to fetch the actor system and PID metric:- ActorSystem Metric:
- Deadletter count
- Actor count
- Uptime
- PID metric:
- Deadletter count
- Children Count
- Restart Count
- Last Processed duration
- Stash size
- Uptime
- ActorSystem Metric:
ActorRefs
method to list of actors on a system or within a cluster
PRs
- feat: add ActorRefs method to ActorSystem to return the list of actors by @Tochemey in #593
- feat: add a metric to ActorSystem and PID by @Tochemey in #594
Full Changelog: v2.11.0...v2.11.1
v2.11.0
What's Changed
- Fix clustering bugs
- Refactor the cluster rebalancing implementation.
- Add custom errors that can help with supervisor strategies definition
- Add
Run
method to the ActorSystem to start the system and handle os interrupts. - Add an option to the ActorSystem called
WithCoordinatedShutdown
to add user-defined tasks to run during the shutdown process.
Pull Requests
- feat: add coordination shutdown mechanism by @Tochemey in #580
- feat: add Run method for some specific use cases by @Tochemey in #585
Full Changelog: v2.10.2...v2.11.0
v2.10.2
Full Changelog: v2.10.1...v2.10.2
v2.10.1
What's Changed
- perf: change boundedmailbox implementation by @Tochemey in #559
- refactor: renamed test proto messages for proper naming by @Tochemey in #562
- fix: fix potential resource leakage by @Tochemey in #564
- feat: add ActorSuspended event to the events stream by @Tochemey in #566
- refactor: refactor deadletters by @Tochemey in #571
- fix(bugs): enforce actors uniqueness creation in cluster by @Tochemey in #575
Full Changelog: v2.10.0...v2.10.1
v2.10.0
What's Changed
- Refactor supervisor strategy. See breaking change note.
- Modify testkit method
Send
signature to enforce that testing remains in the probe context by using the actor name instead of the PID - New testkit method
SendSync
to assert Ask-pattern messages has been added. - Actor restart implementation has been refactored. This is the new restart behavior:
- Restart the given actor
- Restart all direct children of the given actor that are alive before the actor is restarted. Grand children are excluded.
- Respect hierarchical relationship between the direct children and the restarted actor in a parent-child relation.
- The restarted actor should be added back to its parent if any.
- Message processing implementation has been refactored to enhance the throughput of number of messages to handle and reduce resource consumption.
- Unbounded priority mailbox added. Performance wise it seems ok for most use cases. Further work may enhance its performance.
BREAKING CHANGE
The main breaking in this release is how the supervisor strategy work now. The developer can easily create mappings between error types and supervisor strategy directives via the NewSupervisorStrategy
method and SpawnOption
. This allows fine-grained error handling during message processing by actor. In that regard the same actor can have one more ways of dealing with error types. Supervisor strategies are defined during the creation of actors. Therefore a faulty actor can be handled differently depending upon the error type. For instance with this new enhancement one can restart
an actor with the following error type &runtime.PanicNilError{}
and the same actor to be stopped on a different error type. More information on the readme.
The following methods are removed:
WithSupervisorDirective
: removed from the actor system optionWithSupervisor
: removed from the SpawnOption
Pull requests
- feat: implement priority mailbox by @Tochemey in #546
- refactor: refactor internal engine by @Tochemey in #548
- fix: fix actor restarting implementation by @Tochemey in #550
- perf: enhance message processing by @Tochemey in #551
- refactor: refactor implementation of supervisor strategy by @Tochemey in #553
- feat: add ask-pattern testing mechanism by @Tochemey in #555
Full Changelog: v2.9.1...v2.10.0
v2.9.1
What's Changed
- Revert the DNS feature. Only IP addresses will be used due to this issues hashicorp/memberlist#147 and hashicorp/memberlist#162. At the moment DNS hinder cluster nodes discovery. The best option for the meantime is to set the host to "0.0.0.0" and then GoAkt will figure out the right IP address.
- Refactor the whole actors storage using a tree-like structure
- Add two methods to ActorSystem:
Host
andPort
- Fully tested (cluster mode included)
- Fix some bugs introduced from version v2.8.3 around clustering.
Commits
Full Changelog: v2.9.0...v2.9.1
v2.9.0
New Features
ForwardTo
on theReceiveContext
to forward message to a given actor when cluster mode is enabled. It passes a message from one actor to another actor by preserving the initial sender of the message.RemoteForward
on theReceiveContext
to pass a message from one actor to another actor on a remote machine by preserving the initial sender of the message.
Breaking Changes
- Fix bad api design of the remoting methods which necessitated a breaking changes in the accepted arguments of the following methods which now accepts a
from
alongside the existing argumentsRemoteTell
RemoteAsk
RemoteBatchAsk
RemoteBatchTell
Commits and PRs
- feat(enhancement): add ForwardTo and RemoteForward by @Tochemey in #538
- fix(design): fix bad design of remoting call by @Tochemey in #539
Full Changelog: v2.8.3...v.2.8.4