I'm finding this question incomplete without proper usage example of how things should be set up.

Since op did not mention target language I'm feeling like to share Kotlin setup that works in my case:

build.gradle.kts

implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("com.playtika.reactivefeign:feign-reactor-core:3.2.1")
implementation("com.playtika.reactivefeign:feign-reactor-spring-configuration:3.2.1")
implementation("com.playtika.reactivefeign:feign-reactor-webclient:3.2.1")

Config.kt

@Configuration
@EnableWebFlux
@EnableReactiveFeignClients
class Config {
}

MyFeignClient.kt

@Component
@ReactiveFeignClient(
        url = "\${package.service.my-service-url}",
        name = "client"
)
interface MyFeignClient {
    @GetMapping(value = ["/my/url?my_param={my_value}"], consumes = ["application/json"])
    fun getValues(
            @PathVariable(name = "my_value") myValue: String?,
        ): Mono<MyEntity?>?
}

Then here goes code in some service class:

val myClient: MyFeignClient = WebReactiveFeign.builder<MyFeignClient>()
        .contract(ReactiveContract(SpringMvcContract()))
        .target(MyFeignClient::class.java, "http://example.com")
// feel free to add .block() to get unpacked value or just chain your logic further
val response = myClient.getValues(param)
Answer from im_infamous on Stack Overflow
🌐
GitHub
github.com › PlaytikaOSS › feign-reactive
GitHub - PlaytikaOSS/feign-reactive: Reactive Feign client inspired by https://github.com/OpenFeign project · GitHub
feign-reactor-jetty : experimental Reactive Jetty client based implementation of reactor Feign (doesn't depend on feign-reactor-webclient).
Starred by 636 users
Forked by 131 users
Languages: Java
Top answer
1 of 2
10

I'm finding this question incomplete without proper usage example of how things should be set up.

Since op did not mention target language I'm feeling like to share Kotlin setup that works in my case:

build.gradle.kts

implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("com.playtika.reactivefeign:feign-reactor-core:3.2.1")
implementation("com.playtika.reactivefeign:feign-reactor-spring-configuration:3.2.1")
implementation("com.playtika.reactivefeign:feign-reactor-webclient:3.2.1")

Config.kt

@Configuration
@EnableWebFlux
@EnableReactiveFeignClients
class Config {
}

MyFeignClient.kt

@Component
@ReactiveFeignClient(
        url = "\${package.service.my-service-url}",
        name = "client"
)
interface MyFeignClient {
    @GetMapping(value = ["/my/url?my_param={my_value}"], consumes = ["application/json"])
    fun getValues(
            @PathVariable(name = "my_value") myValue: String?,
        ): Mono<MyEntity?>?
}

Then here goes code in some service class:

val myClient: MyFeignClient = WebReactiveFeign.builder<MyFeignClient>()
        .contract(ReactiveContract(SpringMvcContract()))
        .target(MyFeignClient::class.java, "http://example.com")
// feel free to add .block() to get unpacked value or just chain your logic further
val response = myClient.getValues(param)
2 of 2
6

You can check this library: https://github.com/Playtika/feign-reactive

implementation of Feign on Spring WebClient. Brings you the best of two worlds together: concise syntax of Feign to write client-side API on fast, asynchronous and non-blocking HTTP client of Spring WebClient

Discussions

How to Convert Blocking Feign Clients to Reactive Feign Clients - Stack Overflow
Introduction 1. We have quite a bunch of Spring microservices, some totally reactive (spring-webflux) and some old style (spring-web). 2. We use Feign to define API (and the client) in our microser... More on stackoverflow.com
🌐 stackoverflow.com
Newest 'reactive-feign-client' Questions - Stack Overflow
I have a Spring Boot application that uses the feign-reactive library by PlaytikaOSS to create non-blocking HTTP clients using Project Reactor. More on stackoverflow.com
🌐 stackoverflow.com
How does the community like the fact that Spring 5 goes "reactive" for restful?
There is a ton of clients which are not reactive. Use the one you like. For example I've used Java's HTTP client. More on reddit.com
🌐 r/java
27
33
November 27, 2021
Real-world use cases of Spring WebFlux (Mono and Flux)?
On July 1st, a change to Reddit's API pricing will come into effect. Several developers of commercial third-party apps have announced that this change will compel them to shut down their apps. At least one accessibility-focused non-commercial third party app will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: Limiting your involvement with Reddit, or Temporarily refraining from using Reddit Cancelling your subscription of Reddit Premium as a way to voice your protest. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns. More on reddit.com
🌐 r/java
60
46
August 8, 2023
🌐
GitHub
github.com › kptfh › feign-reactive
GitHub - kptfh/feign-reactive: Reactive Feign client based on Spring WebFlux · GitHub
/* Create instance of your API */ IcecreamServiceApi client = Rx2ReactiveFeign .builder() .target(IcecreamServiceApi.class, "http://www.icecreame.com") /* Execute nonblocking requests */ Flowable<Flavor> flavors = icecreamApi.getAvailableFlavors(); Observable<Mixin> mixins = icecreamApi.getAvailableMixins(); <repositories> <repository> <id>bintray-kptfh-feign-reactive</id> <name>bintray</name> <url>https://dl.bintray.com/kptfh/feign-reactive</url> </repository> </repositories> ...
Starred by 168 users
Forked by 167 users
Languages: Java
🌐
Vinsguru
vinsguru.com › spring-webclient-with-feign
Spring WebClient With Feign | Vinsguru
February 5, 2022 - We were able to successfully demonstrate Spring WebClient with Feign to create a declarative reactive client to make HTTP requests without much effort.
🌐
DevGenius
blog.devgenius.io › how-to-build-high-performance-api-client-using-reactive-feign-bae4b5053d12
How to Build High Performance API Client Using Reactive Feign | by Gavin F. | Dev Genius
January 1, 2022 - For example, the system diagram illustrates a typical API integration with a 3rd party API service. The API client sends a request to the endpoint and it holds the thread until a response is received.
🌐
GitHub
github.com › PlaytikaOSS › feign-reactive › blob › develop › feign-reactor-spring-configuration › README.md
feign-reactive/feign-reactor-spring-configuration/README.md at develop · PlaytikaOSS/feign-reactive
Feign client bean will be registered with the name of name + "ReactiveFeignClient" if you had not specified qualifier attribute. In cloud mode name attribute will be used as eureka application name. If you need several feign clients for one eureka application you should specify eureka application manually in application.yml for feign client with name that differs from eureka application name. See example in sample project
Author: PlaytikaOSS
Find elsewhere
🌐
Spring
docs.spring.io › spring-cloud-openfeign › docs › current › reference › html
Spring Cloud OpenFeign
In some cases it might be necessary to customize your Feign Clients in a way that is not possible using the methods above. In this case you can create Clients using the Feign Builder API. Below is an example which creates two Feign Clients with the same interface but configures each one with a separate request interceptor.
🌐
GitHub
github.com › PlaytikaOSS › feign-reactive › blob › develop › README.md
feign-reactive/README.md at develop · PlaytikaOSS/feign-reactive
feign-reactor-jetty : experimental Reactive Jetty client based implementation of reactor Feign (doesn't depend on feign-reactor-webclient).
🌐
Better Programming
betterprogramming.pub › feign-reactive-my-preferred-solution-for-rest-api-consumption-5d79a283b24f
Feign Reactive — My Preferred Solution for REST API Consumption | by Wenqi Glantz | Better Programming
October 24, 2022 - A few months ago, I wrote a story titled Implementing Reactive Circuit Breaker Using Resilience4j, in which Spring WebFlux’s WebClient was chosen as my preferred solution to consume REST API due to its non-blocking nature.
🌐
GitHub
github.com › hzlulu › feign-reactive
GitHub - hzlulu/feign-reactive: Reactive Feign client inspired by https://github.com/OpenFeign project · GitHub
feign-reactor-jetty : experimental Reactive Jetty client based implementation of reactor Feign (doesn't depend on feign-reactor-webclient).
Author: hzlulu
🌐
Spring Cloud
cloud.spring.io › spring-cloud-openfeign › reference › html
Spring Cloud OpenFeign
In some cases it might be necessary to customize your Feign Clients in a way that is not possible using the methods above. In this case you can create Clients using the Feign Builder API. Below is an example which creates two Feign Clients with the same interface but configures each one with a separate request interceptor.
🌐
GitHub
github.com › jnopnop › feign-reactive
GitHub - jnopnop/feign-reactive: Reactive Feign client based on Spring WebFlux · GitHub
feign-reactor-jetty : experimental Reactive Jetty client based implementation of reactor Feign (doesn't depend on feign-reactor-webclient).
🌐
Stack Overflow
stackoverflow.com › questions › tagged › reactive-feign-client
Newest 'reactive-feign-client' Questions - Stack Overflow
I am switching from feign client to reactive feign client, I have defined global retryer for feign: @Bean Retryer retryer() { return new Retryer.Default(100, 1, 5); } @Bean ErrorDecoder ...
🌐
Medium
medium.com › bliblidotcom-techblog › spring-cloud-circuit-breaker-implementation-using-resilience4j-and-reactive-feign-24a863e98457
Spring Cloud Circuit Breaker Implementation Using Resilience4j and Reactive Feign | by Faza Zulfika Permana Putra | Blibli.com Tech Blog | Medium
November 27, 2022 - This is the pom.xml file example (please adjust some part from this snippet based on your needs). First thing that we need to prepare is ReactiveResilience4JCircuitBreakerFactory Bean. This factory bean is used to create Circuit Breaker Object for each Reactive Feign Client that we used.
🌐
Baeldung
baeldung.com › home › spring › spring boot › spring boot feignclient vs. webclient
Spring Boot FeignClient vs. WebClient | Baeldung
July 1, 2026 - The actual web client implementation is then provided by Spring at runtime. Behind the scenes, interfaces annotated with @FeignClient generate a synchronous implementation based on a thread-per-request model. So, for each request, the assigned thread blocks until it receives the response.
🌐
Pribluda
pribluda.de › articles › 20210506reactiveclient
JHipster and reactive feign clients - Konstantin Pribluda
May 6, 2021 - Connecting reactive jhipster application with open feign to webservice
🌐
GitHub
github.com › kptfh › feign-reactive › blob › master › README.md
feign-reactive/README.md at master · kptfh/feign-reactive
/* Create instance of your API */ IcecreamServiceApi client = Rx2ReactiveFeign .builder() .target(IcecreamServiceApi.class, "http://www.icecreame.com") /* Execute nonblocking requests */ Flowable<Flavor> flavors = icecreamApi.getAvailableFlavors(); Observable<Mixin> mixins = icecreamApi.getAvailableMixins(); <repositories> <repository> <id>bintray-kptfh-feign-reactive</id> <name>bintray</name> <url>https://dl.bintray.com/kptfh/feign-reactive</url> </repository> </repositories> ...
Author: kptfh
🌐
Roy Tutorials
roytuts.com › home › microservices › spring mongodb functional reactive microservices example
Spring MongoDB Functional Reactive Microservices Example - Roy Tutorials
November 15, 2025 - In the below code, @FeignClient(name = “forex-microservice”, url = “localhost:8080”) tells that this is a Feign Client and the url at which forex-service is present is localhost:9000.
🌐
GitHub
github.com › kptfh › feign-reactive-sample
GitHub - kptfh/feign-reactive-sample
Sample of reactive feign in cloud mode · start EurekaApplication · start WebFluxApplication ·
Starred by 31 users
Forked by 19 users
Languages: Java 100.0% | Java 100.0%