Releases: Tochemey/goakt
Releases · Tochemey/goakt
v2.6.0
What's Changed
- Convert
ReceiveContext
interface into pure go struct. Small breaking change in https://github.com/Tochemey/goakt/blob/main/actors/actor.go#L45 instead of an interface now accept a pointer ofReceiveContext
- Convert
PID
interface to a pure go struct - Rewrote the mailbox with concrete type instead of generics
- Rewrote the behavior stack implementation
- Refactor the Ask implementations
- Simplify the receive loop
- Reimplement how processing panic is recovered
- Fix latest message received metric recording poor implementation
- Reimplement how error are thrown during message processing. Use
ctx.Error
instead of panicking which is the recommended way. - Remove unused code
- Remove deprecated NATs methods
Pull requests
- refactor: cleaning up code from unecessary code by @Tochemey in #423
- refactor: simplify receive loop by @Tochemey in #424
- refactor: migrate to buff v2 by @Tochemey in #426
- perf: refactor processing error handling by @Tochemey in #431
- refactor: add some local bench test by @Tochemey in #432
- refactor: cleanup by @Tochemey in #435
- refactor: refactor PID to a concrete struct instead of interface by @Tochemey in #436
- chore(deps): upgrade OpenTelemetry to 1.29.0 by @Tochemey in #438
- fix: fix wrong metric recording and cleanup code base by @Tochemey in #440
- refactor: remove NATs deprecated features by @Tochemey in #441
Full Changelog: v2.5.1...v2.6.0
v2.5.1
What's Changed
- Fix actor metrics issue by @Tochemey in #415
- Add performance issue reporting template by @Tochemey in #414
- Remove earthly build on GHA by @Tochemey in #416
- Refactor performance benchmark tests by @Tochemey in #418
- Fix Restart bug by @Tochemey in #419
- MPSC queue implementation to enhance a bit performance by @Tochemey in #420
- README.md by @sdil in #421
- Remove
WithMailbox
from actor system option [Breaking Change] @Tochemey in #420
New Contributors
Full Changelog: v2.5.0...v2.5.1
v2.5.0
What's Changed
- Remove custom mailbox implementation [Breaking Change] (#403)
- Remove the option
WithMailbox
[Breaking Change] (#403) - Remove default mailbox using native channels (#404)
- Use a custom implementation of Queue (#404)
- Dependencies updates
Note:
It is intentional to break away from the semver standard where this should have been a v3.0.0
Full Changelog: v2.4.0...v2.5.0
v2.4.0
What's Changed
- Add System
supervisor
(preparation for escalation directive) - Add router to distribute messages of the same type over a set of actors
- Add
SpawnRouter
method to ActorSystem to create a router - Add
Logger
method to ActorSystem to return the system logger - Enhance PID Shutdown method to properly clean resources.
- Add validation to actor name
Full Changelog: v2.3.1...v2.3.2
v2.3.1
v2.3.0
Add-ons
- WithGCInterval helps sets the actors GC interval to clear up from the system and cluster dead(passivated) actors. This
Breaking Change
- RemoteAsk accepts now a
timeout
parameter - Ask in client accepts now a
timeout
parameter DefaultReplyTimeout
is renamed toDefaultAskTimeout
What's Changed
Full Changelog: v2.2.2...v2.3.0
v2.2.2
v2.2.1
What's Changed
- chore: add issue templates by @Tochemey in #368
- chore: add bug template by @Tochemey in #369
- feat: add cluster client by @Tochemey in #371
New Addition
This facilitates interaction with a specified Go-Akt cluster, contingent upon the activation of cluster mode. The client operates without knowledge of the specific node within the cluster that will process the request. With the client one can:
- Spawn - create an actor
- Stop - stops an actor
- Whereis - locate and get the address of a given actor
- Kinds - returns all the cluster kinds
- Tell - send a message to an actor without a reply(fire-forget)
- Ask - send a message to an actor with the expectation of a reply
Full Changelog: v2.2.0...v2.2.1
v2.2.0
What's Changed
- Upgrade to go 1.22 by @Tochemey in #354
- Upgrade kubernetes dependencies by @Tochemey in #354
- Calibrate appropriately the default mailbox size and stash size. by @Tochemey in #358
- Refactor example codes to use the new clusterConfig by @Tochemey in #359
- Remove examples code to a separate repo by @Tochemey in #362
- Update earthly/earthly to v0.8.14 by @renovate in #360
PipeTo
implementation by @Tochemey in #366
New
PipeTo
: send the successful result of a future(long-running task) to self or a given actor. This can be achieved from the PID as well as from the ReceiveContext- Go-Akt runs now on go 1.22: this was necessary because the latest kubernetes dependencies are all running on go 1.22
Full Changelog: v2.1.0...v2.2.0
v2.1.0
What's changed
- Breaking change in the old way of setting up cluster using
WithClustering
. This method accepts an additional parameter calledkinds
by @Tochemey in #346 - Provide a simple a clean
ClusterConfig
by @Tochemey in #346 - Deprecate
WithClustering
in favour ofWithCluster
that acceptsClusterConfig
by @Tochemey in #346 - Synchronisation of cluster peers state on a schedule basis (at the moment every 10 seconds, can be configurable) by @Tochemey in #346
- Redeploy actors of dead node to the rest of the cluster with a simple algorithm by @Tochemey in #346
- Add
Name
a convenient method to PID to retrieve the actor given name by @Tochemey in #346 - Static discovery by @qazwsxedckll in #337
- Dependencies updates by @renovate in #334
- Switch to connect protocol instead of gRPC by @Tochemey in #333
- Cleanup examples by @Tochemey in #340
New Contributors
- @qazwsxedckll made their first contribution in #337
Full Changelog: v2.0.0...v2.1.0