-
Notifications
You must be signed in to change notification settings - Fork 11
Consider releasing artifact #15
Comments
@kdavisk6 and I talked about this. I think we should release this as What do you think? Can I begin the release right now? |
@spencergibb @ryanjbaxter are you OK with it? Will you approve the pull request in Spring Cloud with |
I think when we have all the They may require work to be done on |
Apologies for the delay in responding, I was away with the family. I am just about finished a few bug fixes for core. I can help starting later this week. |
As long as the API in the Spring Cloud project is stable we wouldnt mind using something that is incubating but if that Spring Cloud API could change as well than we will have to take a different approach. |
I've started looking into the API issues and I believe that most of these API issues can be solved if we change the approach being taken. Most of this library is a refactor of core feign concepts using functional style and paradigms. The reactive areas are limited to executing the I've started working on that in my fork and you can see what I have here: From my perspective, this should be sufficient for us to get an initial release out. Since this approach extends from With regards to Spring Cloud, all that should be necessary is a new @velo and @kptfh I would appreciate if you could look at my fork and let me know your thoughts. |
@kdavisk6 Reactive programming is not just interface it's also means reactive implementation behind the scene. Wrapping sync call with reactive interface will not make them reactive. You need all the chain to be reactive and at the end of this chain is reactive http client should be. But in your approach whole chain is not reactive and it kills any gains that reactivity can give. |
The main benefit reactive approach gives is low threads consumption. But with your approach threads usage remains high (one per call) |
I agree with you. A fully reactive Feign is the goal of this project. My proposal is a trade off. If accepted, we would be able to release something in the near term, clearing any blocks on other downstream projects. We can then take the time we need to refactor each API component, updating I'm trying to find a balance here, between moving things forward without moving too quickly. |
dead end |
I'm sorry you feel that way. The personal jab is unnecessary and immature, however. I understand fully what a reactive approach entails; however,
Staying true to these principles means that we must consider the impact each new dependency has to those using
This is another principle that we do our best to follow. Who is going to be responsible for updating this library as I haven't even begun to talk about what the overall impact this has on the core concepts within
What we have in this repository now, is a highly opinionated approach aimed at solving a single use case involving |
Hi @kptfh, seems we can not agree on implementation details on Pretty much, @kdavisk6 and I wanna see more interface to break it down and reuse After today drama, I don't think we are going to be able to re-conciliate this easily. What I propose is to transfer ownership of Transfer ownership would move the Lemme know if that you are interested on it. |
Hi @velo, thanks for being community member.
You can recall that I've offered you to rename repo into "reactor" instead of "reactive" and narrow it scope. |
@kdavisk6 @kptfh @velo |
On the surface, that is what we are looking to do. The complexity lies in determining which interfaces should be updated and how the internal proxy should work, while trying to maintain some compatibility to the existing extensions. If you take a look at OpenFeign/feign#361 and OpenFeign/feign#644, you see some of the background on this issue. In it, there are two proposals:
Which brings us to where we are today. There is a difference of opinion on if we should take and release a version of with that adheres to the first option, via "retro-fitting", release a version with a fully reactive @prafsoni, what are your thoughts? What would you like to see come out of this effort? |
Looking at applicability page here (which makes sense to me): https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-framework-choice
It tells me that if I'm trying to mix blocking with non-blocking stacks into one jar, I'm still getting blocking code with reactivity overhead. So, option 2 sounds most reasonable long term. Blocking feign is already stable and works just fine, but it is blocking by design. To make most of non blocking stack - all pieces (logging, parsing etc) needs to be redesigned. I do not see reason to me to plug into project reactive wrapper for non reactive feign. |
There are tons of devs waiting for working ReactorFeign. Especially they are interested in Spring's implementation (witht Ribbon/Hystrix support).
@kdavisk6 Let's release this artifact so I can proceed with Spring's WebClient implementation.
The text was updated successfully, but these errors were encountered: