I have been researching how I want to implement the timeout stability pattern. Since doing async efficiently (esp. with timeout) is often very dependent on a lot of tech-specific factors, I have decided to provide a lot of specialized handlers for this. Also I'm starting a new job, so the updates may be slower than I had hoped, depending on how that goes.

Specialized handlers with timeouts will include implementations around the FileStream, WebRequest, SqlCommand and networking and smtp related streams and classes and any other useful BCL classes I can find that implement the APM.

In addition, a generic timeout handler option will be provided, which doesn't participate in any way in shutting down the action under timeout (just the same as the ThreadPool and Tasks APIs don't now).

The idea is to remain a thin wrapper that provides guidance as to how to do things, not to try to do too much magic to make it work for the consumer (while taking on a lot of dangerous assumptions).

Project Description
Missive is a lightweight API that you use to send and handle messages in place of calling methods directly to achieve 3 goals:

* Inversion of Control
* Asynchronous execution
* Stability through patterns (circuit breaker, message timeout, resource pooling)

Missive looks a bit like a message bus, but it does not handle communication with out of process services, rather it makes it easier to implement the above patterns so that your code is better isolated from outside services.

It is written in C# .NET 4.0 using the Task Parallel libraries for the asynchronous operations.


Last edited Mar 12, 2012 at 1:24 AM by ZeroBugBounce, version 10