Name: MailProcessor Type: Server & Client Description: takes a message and performs a series of processing steps on it Interface: ProcessMessage(client id, message) returns: new headers State: - message status between processing steps Uses: DB Used By: MailProcessorClient Exceptions: System Errors InvalidClientID ProcessingFailure Exception Handling: System Errors retry; time-out and fail (throw ProcessingFailure) InvalidClientID throw InvalidClientID InvalidServerID report/log and register server (unknown server); retry; fail InvalidMessageID report/log and ignore (possible statistics corruption) InvalidStatID report/log and ignore (possible statistics corruption)