I tried to marry Retrofit and Hystrix together but that appears to be quite a cumbersome process. Ideally, I'd like to have something like this
However Retrofit uses JDK proxies and annotation info is not preserved so AOP stuff that wires together annotations and actual code does not work. For now, I had to create classes that match methods on interfaces and put @HystrixCommand into class methods instead. That does not look nice as I have to double the code.
Maybe allowing pluggable proxy (cglib, byte-buddy, etc) solution would helpful in the long term here.