I have a situation that requires me to develop a 'Soft Queue'. First let me explain my requirement. The system under consideration has some 'text' messages flowing at a rate of about 1 msg/sec. This is a critical process & i need to log any failures to processes these msgs to a table. At the same time i do not want to affect the 1 msg/sec rate. Thus i would like to decouple the Message processing process from the Error Message logging process. Also i cannot use JMS Queues or other related Queues. What i require is that the Message Processing method should put the failed text messages in some sort of Queue. The job of Message Processing method ends there. I need a mechanism by which the Error Message logging process will be notified of this & it will log the error in the table. Thus the Message Processing method is not held up till the Error Msg is logged. This is some sort of Consumer-Producer problem & Observerable pattern. Please let me know how i can go about this?