Skip to content

v0.8.0 - Breaking API

Compare
Choose a tag to compare
@slawlor slawlor released this 01 May 19:03
· 85 commits to main since this release
d79ea28

NOTE This release breaks the is not backwards compatible with <= v0.7.X versions of ractor

The major change in this release is #89, which is moving ActorRef<TActor: Actor> to ActorRef<TMessage: Message>. The reasons for this are

  1. Someone who wants to send a message to an Actor only cares about 1 thing, the message type. Not the State nor the Arguments for startup. This translates to the ActorRef (at the very least) needing to be changed from ActorRef<Actor> to ActorRef<Actor::Msg>, which should be a relatively straightfoward code modfor downstream usages.
  2. This opens up that multiple actors, of differing implementation, support the same message type transparently. This allows you to have strongly-typed arrays of actors, which may have varying implementations.
  3. Erlang practices don't generally care about the actor implementation, only the messages you send, so this better aligns with the OTP goals there.

Additionally this includes some small changes, adding a stop_and_wait and kill_and_wait functionalities which allows us to block shutdown of an actor until the actor's full processing is completed.

Full changelog: v0.7.6...v0.8.0