Releases: Tochemey/goakt
v3.11.2
🧰 Maintenance
- refactor: code maintenance by @Tochemey in #1006
- chore: maintenance by @Tochemey in #1008
- chore: upgrade dependencies by @Tochemey in #1010
- chore(deps): update actions/checkout action by @renovate[bot] in #1012
- chore(deps): update golangci/golangci-lint-action action to v9 by @renovate[bot] in #1013
- chore(deps): ⬆️ dependencies upgrade by @Tochemey in #1015
Full Changelog: v3.11.1...v3.11.2
v3.11.1
🚀 Highlights
- ⚡ Refactor the implementation of
Killmethod to take into consideration cluster mode.
🔗 Pull Requests
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #999
- docs: enhance readme by @Tochemey in #1001
- refactor: refactor the implementation of kill by @Tochemey in #1004
Full Changelog: v3.11.0...v3.11.1
v3.11.0
✨ What’s Changed
🚀 Features
- ✨ Add cross-nodes context propagator to remoting by @Tochemey in #996. The documentation can be found here
📦 Dependency Updates
- ⬆️ Update
actions/checkouttov5.0.1by @renovate[bot] in #992 - 🧹 Update
golangci/golangci-linttov2.6.2by @renovate[bot] in #993 - 📦 Update
github.com/bufbuild/buftov1.60.0by @renovate[bot] in #994
Full Changelog: v3.10.0...v3.10.1
v3.10.0
🚀 Highlights
- ✨ Metrics instrumentation via OpenTelemetry
- ⚡ Code refactoring to improve efficiency
- 🐛
ActorRefsregression bug fix
Pull Requests
- Add metrics OpenTelemetry-based instrumentation by @Tochemey in #988
- Refactor implementation to improve efficiency by @Tochemey in #983
- Fix
ActorRefsparsing issue by @Tochemey in #990
Full Changelog: v3.9.9...v3.10.0
v3.9.9
✨ What's Changed
- ⚡ Refactor
grain/pidto reduce memory footprint, improving overall efficiency by @Tochemey in #978 - 📦 Update
golangci/golangci-linttov2.6.1to keep static analysis up to date by @renovate[bot] in #979 - 🔐 Upgrade dependencies and address reported vulnerability issues by @Tochemey in #980
Full Changelog: v3.9.8...v3.9.9
v3.9.8
🚀 Highlights
- Grains and Actor activation/placement strategies in cluster mode
- Refactor the implementation of
ActorRefsto return error to make it more predictive. - Refresh tooling and dependencies upgrade.
- Add a miscellaneous package to support local end-to-end testing workflows when fixing bugs.
What’s Changed
✨ Features
⚡ Improvements & Refactors
- Return a clear error when listing actors across nodes fails, improving debuggability in distributed scenarios
(#970 by @Tochemey) - Rewrite the logic for round-robin and least-load strategies to make routing behavior more predictable and maintainable
(#974 by @Tochemey)
📦 Dependency & CI Updates
- ⬆️ Bump
actions/upload-artifactGitHub Action tov5for more reliable artifact handling in CI
(#969 by @renovate[bot]) - ⬆️ Update
golangci/golangci-linttov2.6.0to pick up the latest linting rules and fixes
(#971 by @renovate[bot])
⚠️ Notes
- No breaking changes are expected.
- If you rely on cross-node actor listing, you may now see explicit errors where silent failures previously occurred—check logs and error handling paths accordingly.
🔗 Pull Requests
- chore(deps): update actions/upload-artifact action to v5 by @renovate[bot] in #969
- refactor: return an error when listing actors across nodes by @Tochemey in #970
- feat: ✨ miscellaneous package for local e2e by @Tochemey in #972
- chore(deps): update dependency golangci/golangci-lint to v2.6.0 by @renovate[bot] in #971
- refactor: rewrite the logic round-robin and least-load strategies by @Tochemey in #974
Full Changelog: v3.9.7...v3.9.8
v3.9.7
🚀 Highlights
- Revamped the whole implementation
Router - Enhance the
Routerdocumentation - Added unix timestamp to
remote.Peerto specify their creation date - Added cluster utilities methods to the
ActorSystem:Leader: to return the leader node when the actor system is in cluster modeIsLeader: to check whether a given node is the leader node when the actor system is in cluster mode
📦 Pull Requests
- chore(deps): update module github.com/bufbuild/buf to v1.59.0 by @renovate[bot] in #961
- fix: stop faulty routees before removing them from the pool by @Tochemey in #963
- feat: ✨ enhance router capabilities with new options by @Tochemey in #965
Full Changelog: v3.9.6...v3.9.7
v3.9.6
🚀 Highlights
- Placement strategies for Grains activation as option to
GrainIdentity - Role-based placement for Grains activation as option to
GrainIdentity - Peers list for a given actor system in cluster mode. The method can be found on the
ActorSystem - Role-based placement to Cluster Singleton Actors as option to
SpawnSingleton - Upgrade Go to v1.25.3
📦 Pull Requests
- feat: ✨ add placement strategies for Grains activation by @Tochemey in #950
- feat: ✨ implementation of peers list on the actor system by @Tochemey in #953
- chore(deps): update golang docker tag to v1.25.2 by @renovate[bot] in #952
- chore(deps): update golang docker tag to v1.25.3 by @renovate[bot] in #956
- feat: ✨ add role-base feature to cluster singleton by @Tochemey in #958
Full Changelog: v3.9.5...v3.9.6
v3.9.5
🚀 Highlights
- Cluster Member Role: This will enable developers to tag cluster members with specific roles using the
ClusterConfig. By tagging nodes with meaningful roles—likebackend,mobile,web, etc...—you give the runtime a simple, explicit signal for locality and resource fit. That keeps placement decisions fast and predictable, and it avoids the guesswork that creeps in when every node looks identical on paper but behaves differently under load. Roles cleanly separate concerns: they describe what a node is for, so your Actors can be deployed to where they should live. Instead of scattering lightweight services across heavyweight machines. SpawnOnwith the role placement capability
📦 Pull Requests
- chore: 🗑️ remove unused code and add tests by @Tochemey in #937
- chore(deps): update dependency golangci/golangci-lint to v2.5.0 by @renovate[bot] in #938
- test: ✅ refactor client code and add more tests by @Tochemey in #941
- refactor: refactor some of the implementation and add tests by @Tochemey in #942
- test: add additional unit tests by @Tochemey in #943
- feat: ✨ add role capabilities to cluster node by @Tochemey in #944
- chore(deps): update ossf/scorecard-action action to v2.4.3 by @renovate[bot] in #945
- chore(deps): upgrade dependencies by @Tochemey in #946
Full Changelog: v3.9.4...v3.9.5
v3.9.4
🚀 Highlights
- ⚡ Cluster engine reimplementation with a significantly improved memory footprint.
- 🛡️ Supervision improvements to prevent deadlocks and reduce flakiness.
- ✅ Expanded test coverage across critical paths and reported edge cases.
- 🧹 API cleanup: removed deprecated/obsolete cluster configuration options.
What’s Changed
- Refactor cluster engine to improve memory footprint and overall responsiveness.
- Remove deprecated
WithPeerStateLoopIntervalfromActorSystem. - Remove
ClusterConfigmethods:WithPeersStateSyncIntervalPeersStateSyncInterval
These are no longer needed—cluster coordination is now reactive rather than polling.
- Remove
ClusterConfig.WithWAL.The cluster WAL now uses the running application's home directory to persist peer state. The file is automatically deleted on graceful shutdown.
- Enhance supervision routine to avoid potential deadlocks and reduce flakiness.
- Add extensive unit tests to cover likely use cases and previously reported issues.
🧨 Breaking Changes / Migration Notes
If you reference any of the following in your code or configuration, you’ll need to remove or replace them:
ActorSystem.WithPeerStateLoopInterval(removed)ClusterConfig.WithPeersStateSyncInterval(removed)ClusterConfig.PeersStateSyncInterval(removed)ClusterConfig.WithWAL(removed)
Why? The cluster is now event-driven and reactive, eliminating periodic polling controls and custom WAL wiring.
⚡ Performance
- Avoided unnecessary heap allocations in hot paths.
- Reduced memory footprint of the cluster engine.
Pull Requests
- feat: ⚡ reimplementation of cluster engine by @Tochemey in #919
- refactor: ♻️ refactor actors deployment engine by @Tochemey in #920
- chore: coverage seems broken by @Tochemey in #921
- test: add additional tests by @Tochemey in #923
- perf: ⚡ avoid some unnecessary heap allocation by @Tochemey in #926
- chore: ⬆️ dependencies update by @Tochemey in #931
- fix: supervision strategy potential deadlock and flakiness by @Tochemey in #932
- chore(deps): ⬆️ upgrade dependencies by @Tochemey in #934
Acknowledgements
- Thanks to @GrafGenerator for helping improve memory footprint (more improvements planned in future releases).
- Thanks to @Anillc for spotting performance issues.
Full Changelog: v3.9.3...v3.9.4