Releases: Tochemey/goakt
Releases · Tochemey/goakt
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
v2.8.3
v2.8.2
v2.8.1
What's Changed
- Dependencies upgrade by @renovate in #519
- NATs discovery configuration now accept
host
anddiscoveryPort
rather than a node instance. by @Tochemey in #520. See https://github.com/Tochemey/goakt?tab=readme-ov-file#nats-discovery-provider-setup - One can set a custom
supervisor directive
when creating an actor using the newly added optionWithSupervisor
by @Tochemey in #522. See https://github.com/Tochemey/goakt/blob/main/actors/spawn_option.go#L70C6-L70C20 - Code maintenance by @Tochemey in #521
Full Changelog: v2.8.0...v2.8.1
v2.8.0
Breaking Changes
WithReplyTimeout
removed from the ActorSystem option- All ask-based methods on
PID
andReceiveContext
accept a mandatorytimeout
argument:- Ask`
- SendSync`
BatchAsk
RemoteAsk
RemoteBatchAsk
Add-ons
- Add
Schedule
andRemoteSchedule
methods toScheduler
ExpectMessage
andExpectMessageWithin
in the testkit have been refactored- New remoting API that will allow to extend it with mTLS in the future
- Abstract remoting into a nice struct called
Remoting
for client communication - Refactor the cluster client to accept concrete
Node
instance rather than mere array list of addresses. This help to tailor client connection appropriately to the given node - Ensure that every http client connection closes appropriately to avoid resource leakage.
What's Changed
- feat: add Schedule and RemoteSchedule to scheduler by @Tochemey in #493
- refactor: refactor ExpectMessage and ExpectMessageWithin by @Tochemey in #496
- Fix typo by @autodidaddict in #503
- refactor: cleanup the code to allow easy extensibility by @Tochemey in #505
- refactor: use sync.Map for peersCache in actor system by @Tochemey in #512
- refactor: remove system ask timeout and pass timeout to asks by @Tochemey in #515
New Contributors
- @autodidaddict made their first contribution in #503
Full Changelog: v2.7.1...v2.8.0
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