Hi all, I’d like to suggest that we start moving away from our current use of hardcoded Retrofit + OkHttp clients in Fineract, and instead adopt OpenFeign.
Why this matters Right now, whenever we make an HTTP call, we’re wiring up Retrofit + OkHttp directly. This works, but it locks us into a single client implementation, and over time it makes things harder to configure, extend, and test. For example: If we want to change timeouts, add retries, or enable tracing, we often end up duplicating boilerplate code. If OkHttp ever causes problems, swapping it out would be painful. It’s not straightforward to mock Retrofit clients in tests without a lot of setup. It does not support connection maxAge for connection recycling etc. By contrast, Feign lets us define an interface for the HTTP call, and handles the rest under the hood. That means: We can switch the underlying HTTP client (OkHttp, Apache HttpClient, etc.) with almost no code changes. Cross-cutting concerns (timeouts, retries, error handling, logging, metrics, authentication) can all be configured centrally instead of re-implemented in each client. Why now? As Fineract grows — with more integrations, cloud deployments, and potentially microservice architectures — having a flexible, future-proof HTTP client layer will pay off a lot. OpenFeign is well-maintained, widely used, and integrates nicely with metrics/tracing libraries, so we’d be standing on solid ground. I’d love to hear what others think — concerns, alternatives, or experiences from projects where you’ve used Feign (or similar) before. Regards, Adam
