Skip to content

Releases: Tochemey/goakt

v2.7.1

12 Oct 14:31
Compare
Choose a tag to compare

What's Changed

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

28 Sep 20:18
Compare
Choose a tag to compare

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 and BoundedMailbox
  • 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

24 Sep 18:04
10dc734
Compare
Choose a tag to compare

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 to DiscoveryPort in discovery.Node (breaking changes)
  • Rename ClusterConfig method WithGossipPort to WithDiscoveryPort (breaking changes)
  • Rename ClusterConfig method GossipPort() to DiscoveryPort() (breaking changes)
  • Rename kubernetes config GossipPortName to DiscoveryPortName (breaking changes)
  • ActorPath has been replaced with Address on PID (breaking changes)

Full Changelog: v2.6.1...v2.6.2

v2.6.1

31 Aug 10:15
f4f11a0
Compare
Choose a tag to compare

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

25 Aug 23:10
Compare
Choose a tag to compare

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 of ReceiveContext
  • 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

Full Changelog: v2.5.1...v2.6.0

v2.5.1

13 Aug 11:07
0411ce7
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.5.0...v2.5.1

v2.5.0

05 Aug 17:00
Compare
Choose a tag to compare

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

26 Jul 17:22
Compare
Choose a tag to compare

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

30 Jun 20:44
c31993b
Compare
Choose a tag to compare

What's Changed

  • fix: resolve deadlock issue when creating child actor by @Tochemey in #383

Full Changelog: v2.3.0...v2.3.1

v2.3.0

29 Jun 19:16
28d2fa9
Compare
Choose a tag to compare

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 to DefaultAskTimeout

What's Changed

  • feat: add timeout to Ask/RemoteAsk and Client Ask by @Tochemey in #380

Full Changelog: v2.2.2...v2.3.0