OpenFeign (Spring Cloud OpenFeign)

Declarative REST client for Spring Boot — define Java interfaces with @FeignClient and Spring MVC annotations (@GetMapping, @PostMapping, @RequestParam), and Spring Cloud generates the HTTP client implementation at runtime. Eliminates RestTemplate/WebClient boilerplate for inter-service calls. Integrates with Spring Cloud LoadBalancer (client-side load balancing across service instances), Spring Cloud Circuit Breaker (Resilience4j/Hystrix), Micrometer metrics, and Sleuth tracing. Feign interfaces support: custom error decoders, request/response interceptors (add auth headers), logging, and custom encoders/decoders. Replaced Netflix Feign as the Spring Cloud maintained fork.

Evaluated Mar 07, 2026 (0d ago) v4.x
Homepage ↗ Repo ↗ Developer Tools java kotlin spring http-client declarative feign rest-client microservices circuit-breaker
⚙ Agent Friendliness
64
/ 100
Can an agent use this?
🔒 Security
84
/ 100
Is it safe for agents?
⚡ Reliability
85
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
85
Error Messages
82
Auth Simplicity
85
Rate Limits
90

🔒 Security

TLS Enforcement
88
Auth Strength
82
Scope Granularity
80
Dep. Hygiene
88
Secret Handling
85

TLS via underlying HTTP client (OkHttp/Apache) — configure SSL context for mutual TLS with agent services. API keys via RequestInterceptor should read from Spring properties, not hardcoded. Feign logging at FULL level logs request bodies — avoid in production for agent calls with sensitive data.

⚡ Reliability

Uptime/SLA
88
Version Stability
85
Breaking Changes
82
Error Recovery
85
AF Security Reliability

Best When

You're building Spring Boot microservices that call other REST services or external APIs — Feign eliminates HTTP client boilerplate and integrates automatically with Spring Cloud infrastructure (load balancing, circuit breaking, tracing).

Avoid When

Your service is Spring WebFlux reactive (use WebClient), you need streaming HTTP responses, or you need low-level HTTP control beyond what Feign's interface model provides.

Use Cases

  • Call external agent LLM APIs with declarative Feign client — @FeignClient(name='openai', url='${openai.url}') with @PostMapping('/v1/chat/completions') generates typed HTTP client without RestTemplate boilerplate
  • Inter-service agent API calls with service discovery — @FeignClient(name='agent-service') with Spring Cloud LoadBalancer resolves 'agent-service' to running instances via Kubernetes service or Eureka
  • Add auth headers to agent API Feign clients via RequestInterceptor — implement RequestInterceptor to add Authorization: Bearer token to all Feign calls for agent-to-agent service authentication
  • Circuit break agent service dependencies with Feign + Resilience4j — @FeignClient with fallback class returns cached or default agent response when downstream agent service is unavailable
  • Test agent Feign clients with WireMock — @WireMockTest with FeignClient pointing to WireMock server for integration testing agent HTTP client behavior without live agent API

Not For

  • Reactive Spring WebFlux services — OpenFeign is blocking; use Spring's WebClient or Spring Cloud's Feign Reactive for agent services on WebFlux event loop
  • Non-Spring Java applications — Feign standalone works but Spring Cloud OpenFeign is tightly coupled to Spring ecosystem; use OkHttp, Retrofit, or plain Feign for non-Spring agent services
  • Complex HTTP scenarios — Feign is optimized for simple REST calls; for streaming responses, multipart uploads, or complex agent API interactions, use WebClient or OkHttp directly

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: bearer_token api_key basic
OAuth: No Scopes: No

Feign client auth implemented via RequestInterceptor — add Authorization header, API key header, or basic auth to all requests. OAuth2 token refresh via OAuthFeignInterceptor or custom interceptor.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

Spring Cloud OpenFeign is Apache 2.0 licensed, maintained by Broadcom/VMware. Free for all use.

Agent Metadata

Pagination
custom
Idempotent
Partial
Retry Guidance
Documented

Known Gotchas

  • Feign is blocking — @FeignClient methods return T, not Mono<T>/Future<T>; calling Feign client in WebFlux handler blocks event loop thread; use Feign client in @Async methods or with Schedulers.boundedElastic() when needed in reactive agent services
  • @FeignClient URL vs service discovery — @FeignClient(name='agent-svc', url='${agent.url}') uses fixed URL; @FeignClient(name='agent-svc') without url uses service discovery; accidentally omitting url in production uses service discovery which requires Eureka/Kubernetes; always set url for external agent APIs
  • Error decoder must be registered as bean — custom ErrorDecoder bean must be registered; without @Bean declaration, Feign uses default error decoder which throws FeignException for all non-2xx; agent-specific exception mapping requires explicit bean registration
  • Feign logging requires DEBUG log level — Feign logging (REQUEST/RESPONSE headers/body) requires setting logging.level.com.example.FeignClient=DEBUG; INFO level shows nothing; production log levels must be set appropriately to avoid logging agent request bodies
  • Feign interface methods cannot have @Transactional — Feign generates HTTP client proxy; Spring @Transactional on Feign interface has no effect; transactional logic must be in calling service, not Feign client interface
  • Spring Cloud LoadBalancer requires discovery — @FeignClient(name='agent-service') with LoadBalancer fails with 'No instances available' if no service discovery or if service is not registered; always handle LoadBalancerFeignClient failure in agent circuit breaker fallback

Alternatives

Full Evaluation Report

Comprehensive deep-dive: security analysis, reliability audit, agent experience review, cost modeling, competitive positioning, and improvement roadmap for OpenFeign (Spring Cloud OpenFeign).

AI-powered analysis · PDF + markdown · Delivered within 30 minutes

$99

Package Brief

Quick verdict, integration guide, cost projections, gotchas with workarounds, and alternatives comparison.

Delivered within 10 minutes

$3

Score Monitoring

Get alerted when this package's AF, security, or reliability scores change significantly. Stay ahead of regressions.

Continuous monitoring

$3/mo

Scores are editorial opinions as of 2026-03-07.

6470
Packages Evaluated
26150
Need Evaluation
173
Need Re-evaluation
Community Powered