What is a difference between tell and forward, in case I will send the same message:
case msg: Message =>
otherActor tell (msg,sender)
and
case msg: Message =>
otherActor forward msg
The sender()
will be different on the receiving end.
Message sends using tell (also known as !
):
A
tells message M
to B
.
B
tells that message to C
.
C
thinks the sender()
of message M
is B
.
Message sends using forward:
A
tells message M
to B
.
B
forwards that message to C
.
C
thinks the sender()
of message M
is A
.
Worth pointing out is, that you can achieve the same as forward
when explicitly setting the sender of a message using tell
, however this is not typical Akka-style:
// inside `B`, when received `msg` from `A`
C tell (msg, A)
==
C forward msg
For more info refer to the docs about forward.