The Actor's own akka.actor.ActorRef is available as self, the current
message’s sender as sender() and the akka.actor.ActorContext as
context. The only abstract method is receive which shall return the
initial behavior of the actor as a partial function (behavior can be changed
using context.become and context.unbecome).

The last line demonstrates the essence of the error kernel design: spawn
one-off actors which terminate after doing their job, pass on sender() to
allow direct reply if that is what makes sense, or round-trip the sender
as shown with the fictitious JobRequest/JobReply message pair.

If you don’t like writing context you can always import context._ to get
direct access to actorOf, stop etc. This is not default in order to keep
the name-space clean.