feign
feign copied to clipboard
add feign-rxjava
This should support at least an Observer implementation (plus other ideas @benjchristensen has in mind)
I'm definitely interested in working on this module with you.
this might be best resurrected as feign-rxnetty, possibly using the bolt-on idea from @jdamick.
Only thing is that the interactions could be complex. ex. the builder for feign-rxnetty probably wouldn't want to expose many of the existing things that builders accept. Ex. Client (as it is synchronous).
Probably first stage would be to have a buddy module with a hard dep on rxnetty, and exposes an alternate builder that only exposes things that actually make sense. builders aren't that much code and heck, google auto can make them for us.
cc @brianm @NiteshKant
+1
+1
+1
+1
:+1:
ps. those interested, have a look at the new hystrix module, which implicitly support rxjava. It is likely rxjava support will integrate similarly https://github.com/Netflix/feign/tree/master/hystrix
:+1:
Methods that do not return HystrixCommand are still wrapped in a HystrixCommand, but execute() is automatically called for you.
It might be nice if methods that return Observable are still wrapped in a HystrixCommand, but toObservable() is automatically called for you. It seems this would be a straight forward feature to add.
Once an RxJava module is added, you could choose either the RxJava module or the Hystrix module w/o having to update your interfaces.
I don't have any Hystrix experience yet, but I would be willing to implement the required changes if there's a chance of a PR being accepted.
Just submitted a PR with Observable support and updated unit tests.
https://github.com/Netflix/feign/pull/307
8 yers passed, all the modern declarative HTTP clients(retrofit,micronaut,quarkus) has supported reactive programming, except feign. may be your team should dig deeper into their implentation.
This project is run entirely by (2) volunteers. If this is something you are interested in pursuing , we are open to pull requests or more conversation on how we can support this proposal.
I will add, that what we've learned about adding non-blocking support is that it will take a fairly substantial refactoring of the library. Feign's origins began before async and non-blocking I/O support was more widely used and mature.