Releases: Tochemey/goakt
Releases · Tochemey/goakt
v2.7.1
What's Changed
- refactor: enhance code coverage by @Tochemey in #482
- refactor: remove otel collector from client code by @Tochemey in #485
- refactor: refactor pidMap using sync.Map by @Tochemey in #486
- perf: add sync loop to message processing by @Tochemey in #491
Note
🎉🎉🎉This release enhances the performance of the framework drastically by the introduction of sync.Map
and sync.Pool
🎉🎉🎉
Full Changelog: v2.7.0...v2.7.1
v2.7.0
What's Changed
- Expose mailbox API
- Implement
UnboundedMailbox
using mpsc queue which is the default mailbox - Implement
BoundedMailbox
using the ring buffer queue - Add a
SpawnOption
to spawn actor with custom mailbox if needed. - Add some performance enhancement
- Add benchmark code for both
UnboundedMailbox
andBoundedMailbox
- Expose counters and remove OpenTelemetry dependency [breaking change]
Commits
- refactor: remove OpenTelemetry dependency by @Tochemey in #472
- chore: upgrade nats dependencies and enhance stale bot message by @Tochemey in #477
- feat: expose an API for custom mailboxes by @Tochemey in #479
Full Changelog: v2.6.2...v2.7.0
v2.6.2
What's Changed
- feat: add location transparent messaging capabilities by @Tochemey in #457
- refactor: add test coverage for cluster rebalancing by @Tochemey in #458
- refactor: make some method private by @Tochemey in #459
- refactor: clean the addressing engine by @Tochemey in #460
- refactor: rename gcInternal to janitorInterval to avoid confusing with Go GC by @Tochemey in #463
- perf: performance tuning by @Tochemey in #468
- refactor: move stash back to mailbox by @Tochemey in #469
Breaking Changes
- Rename
GossipPort
toDiscoveryPort
in discovery.Node (breaking changes) - Rename ClusterConfig method
WithGossipPort
toWithDiscoveryPort
(breaking changes) - Rename ClusterConfig method
GossipPort()
toDiscoveryPort()
(breaking changes) - Rename kubernetes config
GossipPortName
toDiscoveryPortName
(breaking changes) ActorPath
has been replaced withAddress
on PID (breaking changes)
Full Changelog: v2.6.1...v2.6.2
v2.6.1
What's Changed
- perf: refactor receive loop to avoid busy threads by @Tochemey in #443
- chore(deps): upgrade github.com/nats-io/nats-server/v2 to v2.10.19 by @Tochemey in #445
- fix(bugs): never redistribute system actors by @Tochemey in #447
- fix: use underlying message processor than the PID by @Tochemey in #451
- refactor: remove defer and explictly unlock by @Tochemey in #452
Full Changelog: v2.6.0...v2.6.1
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