Skip to main content
A quick summary of v4.0.0 changes. For the complete migration guide, see Migration from v3.x.

Executive summary

v4.0.0 delivers simplification and performance:
ThemeKey changes
Unified APIsSingle actor reference (*PID), single lookup (ActorOf), unified scheduler
Type flexibilityany replaces proto.Message; CBOR for arbitrary Go types
RemotingConfig-only public API; client is internal
IdentityPath interface replaces *address.Address
PerformanceLow-GC serialization, lock-free type registry, single-allocation frames

Quick migration reference

FromTo
proto.Message in handlersany
goaktpb.* typesactor.* (e.g., actor.PostStart, actor.PoisonPill)
ActorRef*PID
ActorOf β†’ (addr, pid, err)ActorOf β†’ (*PID, error)
LocalActor(name)ActorOf(ctx, name)
RemoteActor(ctx, name)ActorOf(ctx, name)
pid.Address()pid.Path()
ctx.SenderAddress()ctx.Sender().Path()
WithRemotingWithRemote(config)
address packageinternal/address; use Path interface

New additions

  • Pluggable serializers β€” ProtoSerializer (default), CBORSerializer for any Go type
  • Path interface β€” Location-transparent actor identity
  • Extended Logger β€” Context-aware logging, Enabled, With, Flush, etc.
  • Slog and Zap implementations β€” Low-GC logging options