A next-generation HTTP client for Spring that implements client-side response routing, embracing HTTP's full power.
Riptide is a next-generation HTTP client library for Spring that implements client-side response routing. It allows Java developers to fully leverage HTTP's capabilities by dispatching responses to different callbacks based on status codes, content types, or other conditions, rather than forcing a single-return paradigm. The library provides built-in resilience features, asynchronous communication, and a type-safe API.
Java developers building Spring-based applications who need robust, flexible HTTP client capabilities with fine-grained control over response handling and resilience patterns.
Developers choose Riptide because it doesn't abstract HTTP away but embraces it, offering unique response routing, built-in resilience, and a plugin-based extensibility model that integrates seamlessly with Spring's ecosystem.
Client-side response routing for Spring
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables dispatching responses to different callbacks based on status codes, series, or content types, allowing multiple happy-case handling as demonstrated in the example with SUCCESSFUL and CLIENT_ERROR series.
Includes isolated thread pools, connection pools, bounded queues, and integrations for retries, circuit breakers, and fault detection via modules like riptide-failsafe and riptide-faults.
Returns CompletableFuture for non-blocking IO, with optional synchronous return values through riptide-capture, promoting scalable application design.
Offers a plugin system for adding custom functionality like authorization, metrics, and transient fault detection, as seen with plugins such as AuthorizationPlugin and MicrometerPlugin.
Requires manual setup of executors, request factories, and plugins, with even the bare minimum configuration needing explicit thread pool management, increasing initial overhead.
Frequent major version upgrades (e.g., from 4.x to 5.x) come with migration guides for breaking changes, which can disrupt existing implementations and require significant updates.
Tightly coupled with Spring framework versions, necessitating Java 17 and Spring 7, limiting flexibility for projects outside this ecosystem or with legacy dependencies.
Riptide is an open-source alternative to the following products: