Releases: Tochemey/goakt
Releases · Tochemey/goakt
v3.12.1
Immutable
release. Only release title and notes can be modified.
What's Changed
✨ New Features
- actor: Added reentrancy capabilities by @Tochemey in #1050
- grain: Added bounded mailbox support for grains by @Tochemey in #1055. This feature was engineered by @andreas-lindfalk
🛠 Refactors & Maintenance
- actor: Refactored the reentrancy implementation by @Tochemey in #1052
- core: General code maintenance and cleanup by @Tochemey in #1053
📚 Documentation
- Updated copyright headers by @Tochemey in #1049
- Documented reentrancy in the feature list by @Tochemey in #1051
Full Changelog: v3.12.0...v3.12.1 and https://github.com/Tochemey/goakt/blob/main/changelog.md#v3121---2026-06-01
v3.12.0
Immutable
release. Only release title and notes can be modified.
🚀 Highlights
This release focuses on robustness, resilience, and developer experience, with significant improvements across clustering, grains, scheduling, and maintenance.
✨ New Features
- ✨ Remoting calls for Grains Enables remote interactions with Grains for distributed workflows. (@Tochemey · #1027)
- 🧪 Basic TestKit support for Grains Introduces foundational testing utilities to simplify Grain testing. (@Tochemey · #1033)
- 🧭 Default supervisor configuration
SpawnOnnow uses the system-wide default supervisor strategy. A new option,WithDefaultSupervisor, has been added to explicitly configure it. (@Tochemey · #1018)
🐛 Bug Fixes
- Grain activation revamp Prevents panics and duplicate activations during Grain lifecycle handling. (@Tochemey · #1023)
- Recovery support for Grain de/activation Adds recovery capabilities to improve fault tolerance. (@Tochemey · #1030)
- Actor count correctness Fixes mismatches as well as underflow and overflow issues in actor counts. (@Tochemey · #1035)
- Scheduler reliability Fixes an issue where
ScheduleOnce()did not always trigger as expected. (@majiayu000 · #1039)
♻️ Refactors & Improvements
- Address implementation overhaul Revamps address handling and adds support for configuring a default supervisor. (@Tochemey · #1019)
- Supervisor system overhaul (@Tochemey · #1018)
- Supervisor logic has been moved into its own dedicated package:
supervisor - Migrating existing code only requires replacing
actorwithsupervisorBreaking Change
- Supervisor logic has been moved into its own dedicated package:
- Improved relocation semantics (@Tochemey · #1018)
- Ensures child actors are not relocated unintentionally during relocation
- Adds support to relocate actors with their configured supervisor strategy
- Restart behaviour revamp The
Restartimplementation now restarts the entire child family tree, ensuring consistent recovery semantics. (@Tochemey · #1018) - Cluster storage DB file creation Reimplements DB file creation logic for improved reliability. (@Tochemey · #1025)
- Cluster singleton resilience Makes singleton spawning more robust in clustered environments. (@Tochemey · #1038)
- Reduced shutdown log noise Avoids unnecessary log spam during actor system shutdown. (@Tochemey · #1032)
- General code maintenance Internal refactors and cleanup for long-term maintainability. (@Tochemey · #1026)
🧹 Chores & Dependency Updates
- Cluster engine dependency upgrade Keeps the cluster engine up to date. (@Tochemey · #1041)
- Dependency maintenance Routine dependency updates and housekeeping. (@Tochemey · #1042)
🙌 New Contributors
- @majiayu000 made their first contribution in #1039
- @TrueBrain made significant contribution in enhancing the cluster engine in #1036
Full Changelog: https://github.com/Tochemey/goakt/blob/main/changelog.md
v3.11.2
Immutable
release. Only release title and notes can be modified.
🧰 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
Immutable
release. Only release title and notes can be modified.
🚀 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
Immutable
release. Only release title and notes can be modified.
✨ 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
Immutable
release. Only release title and notes can be modified.
🚀 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
Immutable
release. Only release title and notes can be modified.
✨ 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
Immutable
release. Only release title and notes can be modified.
🚀 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
Immutable
release. Only release title and notes can be modified.
🚀 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
Immutable
release. Only release title and notes can be modified.
🚀 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