Open smoyer64 opened 6 years ago
Shawn has proposed that:
RuntimeException
is thrown, sub-type MessageProcessor
should log the specifics of the error and the MessageHandler
should exit .MessageProcessor
should log the specifics of the temporary problem and retry.
When the
MessageHandler
attempts to spawn a newMessageProcessor
sub-type, if there's an error in the constructor theMessageHandler
attempts to build another without rate limiting. There are two types of errors that classes implementingMessageProcessor
should differentiate between:MessageHandler
should itself exit with an error.MessageHandler
should "gracefully" retry. Exponential backoff would be nice but even a timer to limit the rate at which theMessageHandler
tries to instantiate aMessageProcessor
would work.An example of the open loop behavior is as follows: