That is an interesting suggestion. I wanted to keep the server receptionist stateless of connected clients, but one of the primary goals was to minimize number of connections on the client side. I agree that the replies defeats that goal. I will create child actor per client. Cleanup cannot be done with death watch. It's not reliable outside cluster. Client may also change receptionist. I think receive timeout based approach is fine.

It will still be possible for client to talk directly to an actor, but that decision is made by the client. Makes a lot of sense.