v0.8.0 - Breaking API
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
- Someone who wants to send a message to an
Actor
only cares about 1 thing, the message type. Not theState
nor theArguments
for startup. This translates to theActorRef
(at the very least) needing to be changed fromActorRef<Actor>
toActorRef<Actor::Msg>
, which should be a relatively straightfoward code modfor downstream usages. - 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.
- 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