feign icon indicating copy to clipboard operation
feign copied to clipboard

add feign-rxjava

Open codefromthecrypt opened this issue 12 years ago • 13 comments

This should support at least an Observer implementation (plus other ideas @benjchristensen has in mind)

codefromthecrypt avatar Jul 16 '13 20:07 codefromthecrypt

I'm definitely interested in working on this module with you.

benjchristensen avatar Jul 16 '13 21:07 benjchristensen

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

codefromthecrypt avatar Mar 10 '15 04:03 codefromthecrypt

+1

spencergibb avatar Mar 10 '15 13:03 spencergibb

+1

jdamick avatar Mar 10 '15 14:03 jdamick

+1

yterradas avatar Mar 11 '15 03:03 yterradas

+1

stemcd avatar Sep 29 '15 10:09 stemcd

:+1:

christopherlakey avatar Oct 28 '15 20:10 christopherlakey

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

codefromthecrypt avatar Oct 28 '15 21:10 codefromthecrypt

:+1:

mariuszs avatar Nov 13 '15 18:11 mariuszs

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.

christopherlakey avatar Jan 01 '16 23:01 christopherlakey

Just submitted a PR with Observable support and updated unit tests.

https://github.com/Netflix/feign/pull/307

christopherlakey avatar Jan 02 '16 00:01 christopherlakey

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.

CoderYellow avatar May 25 '21 04:05 CoderYellow

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.

kdavisk6 avatar May 25 '21 20:05 kdavisk6