@Ryan, thanks. But as I see it, wrapping is essential here. Please allow me to explain what I'm trying to do. Maybe I'm completely mistaken and there's a much better way to do it:
There are three parties (code components), I'll name them caller, parent and child. The caller (actor or non-actor, doesn't matter) essentially wants to send a message to the child actor and has a fixed contract with that child actor. Part of that contract is that the child actor responds to each message with either a Status.Success or Status.Failure. For each message, the child actor performs an action that is prone to failure. So there is an intermediate parent actor that relays messages between the caller and the child actor. The job of the parent actor is to do some bookkeeping of which messages failed and how often an when and to organize a controlled retry procedure like backoff, circuit breaker, whatever plus monitoring. That parent actor is intended to be generic, knowing nothing of the message contents between the caller and the child. So if I used just "tell" without a way to wrap the failed message with the retry status, there's no way I see for the parent actor to keep track of the retry status of each of the relayed messages. Except either modifying the child contract to recognize a wrapped message (not possible here) or keep persistent state in the parent actor for each relayed message (seems very unpretty to me). -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
