Netflix/Hystrix — pull request #209 by benjchristensen (2014-02-05 17:16:23+00:00)
Title: Hystrix 1.4 - Async/Non-Blocking [Preview]

This is a preview of Hystrix 1.4 that adds `HystrixNonBlockingCommand`. Thank you to @neerajrj for this work!

This will achieve issue https://github.com/Netflix/Hystrix/issues/11.

The intent is to allow bulk-heading, circuit breaker and metrics support around non-blocking network calls. It will not use thread-isolation, only semaphore and timeouts.

Here is a simple example executing a network call via Netty:

```java
public class ObservableCommandWikipediaSearch extends HystrixNonBlockingCommand {

private final String query;

protected ObservableCommandWikipediaSearch(String query) {
super(Setter.withGroupKey(HystrixCommandGroupKey.Factory.asKey("Wikipedia"))
.andCommandPropertiesDefaults(HystrixCommandProperties.Setter().
withExecutionIsolationThreadTimeoutInMilliseconds(4000)));
this.query = query;
}

@Override
protected Observable run() throws Exception {
String url = "http://en.wikipedia.org//w/api.php?action=query&generator=search&prop=info&format=json&gsrsearch=" + query;
return RxNetty.createHttpRequest(url).flatMap(new Func1, Observable