Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements the core functionality for the failsafe library, providing a Clojure wrapper around the Java Failsafe library for resilience patterns like retries, circuit breakers, and rate limiting. The implementation includes policy builders for various failure handling strategies and execution functions for both synchronous and asynchronous operations.
- Implements policy builders for bulkhead, circuit breaker, fallback, rate limiter, retry, and timeout
- Adds synchronous and asynchronous execution functions with Failsafe integration
- Removes Java options configuration from Makefile related to executor factory
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/failsage/impl.clj | Implements protocol for policy builders, type conversions for Failsafe interop, and core execution functions |
| src/failsage/core.clj | Defines public API for creating Failsafe policies and executors with Clojure-friendly configuration maps |
| Makefile | Removes executor factory Java options that are no longer needed |
Comments suppressed due to low confidence (1)
src/failsage/core.clj:1
- Double period detected - should be a single period before 'Default'.
(ns failsage.core
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
it doesn't seem like :on-failure-fn for retry or the result supplying function for fallback can be async (:on-failure-fn can be fire and forget async, but wild about the idea of potentially spinning up unbounded tasks while something is failing). Not sure what consequences of that will be. might make transforming something like |
37bfaee to
03ff5db
Compare
Initial release providing idiomatic Clojure wrappers for Failsafe.dev.
Features
retry,circuit-breaker,fallback,timeout,rate-limiter,bulkheadexecuteexecute-asyncwith futurama integration