- An Actor we'll call Server needs to bootstrap itself. This takes some time.
- Meanwhile, an Actor we can call Client begins to send Request messages to the server
- ...but the server isn't ready yet.
- Server can discard messages any time it isn't available to respond (such as the bootstrap scenario)
- Requires clients to wait a certain amount of time for a timeout, then resend.Requires client to keep track of/queue messages
- Server can buffer messages when it is unable to respond, then handle them when ready
But I immediately realized that the message between E to B in the picture above suffers exactly the same problem as the message from A to B directly. So this is of no use. Therefore I implemented serverside buffering of messages during times it is unable to respond. When it is able to respnd it dequeues the messages and handles them. This is better than any option in which the client needs to take server "sleepiness" into consideration. I came across this stack overflow topic which affirms my design choice: http://stackoverflow.com/questions/9602322/akka-2-how-to-pause-processing-of-messageshttp://stackoverflow.com/questions/9602322/akka-2-how-to-pause-processing-of-messages