-
Notifications
You must be signed in to change notification settings - Fork 2k
Feign 11 Proposed Roadmap
Kevin Davis edited this page Aug 27, 2019
·
5 revisions
Some of these considerations have been attempted in FeignX. We should consider moving these into Feign.
Considerations:
- Java 11 Module Support
- Async Execution through CompletableFuture
- Pluggable Executor Support
- Reactive Execution through Reactive Streams
- Does this require explicit non-blocking with Netty?
- Complete URI Template Support
- Level 1 - 4 support
- Better Object Expansion
- Enhanced Retry through the use of Conditions and Backoff
- Exception Condition
- Status Code Condition
- Custom Condition
- Backoff Policies
- Enhanced Logging
- Log external and internal messages
- Consider using SLF4J in all cases
- Built in Performance characteristics
- Annotation Processor as an alternative to Reflection based Proxies
- This may imply in re-working the current
Contract
implementations so code can be shared between reflective and non-reflective code
- This may imply in re-working the current
- Caching support
- Both when http headers are set or when user says so
- when user says to cache, any invocation that uses exact same args will read from cache, no HTTP request, no response parsing
- when using http headers, feign will need to handle the headers and include them on next request that use the same args. if 304, return the cached result from previous invocation, (Conditional GET support)
- Configurable and not enable by default
- Consider 2 implementations, default using java
Map
and alternative with guavaCache
, maybe also make it pluggable with Spring Cache?
- Both when http headers are set or when user says so
- Metrics
- collection metrics about rate and time for requests. May be make detail level configurable, so can include metrics about time encondig/decoding and so on.