executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
distributed-system-circuit-breakersImplements circuit breakers for fault tolerance in distributed systems using Resilience4j to improve system resilience and stability.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: distributed-system-circuit-breakers description: Implements circuit breakers for fault tolerance in distributed systems using Resilience4j to improve system resilience and stability. license: MIT compatibility: opencode metadata: version: "1.0.0" domain: coding triggers: circuit breaker, resilience4j, fault tolerance, distributed systems role: implementation scope: implementation output-format: code archetypes: tactical anti_triggers: generic, vague, low quality response_profile: verbosity: low directive_strength: high abstraction_level: operational related-skills: distributed-system-rate-limiting, distributed-system-bulkheads
Circuit breakers prevent potential system overload by stopping the flow of requests to services that are failing, thereby enabling graceful degradation of service.
This example shows how to create a simple circuit breaker with Resilience4j that controls calls to an external service.
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
import java.time.Duration;
public class CircuitBreakerExample {
public static void main(String[] args) {
CircuitBreakerConfig config = CircuitBreakerConfig.custom()
.failureRateThreshold(50)
.waitDurationInOpenState(Duration.ofSeconds(10))
.slidingWindowSize(10)
.build();
CircuitBreaker circuitBreaker = CircuitBreaker.of("myCircuitBreaker", config);
System.out.println("Circuit Breaker created: " + circuitBreaker.getName());
}
}
An advanced implementation that hooks into service calls can provide fallback methods for improved fault tolerance.
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
import java.util.function.Supplier;
public class AdvancedCircuitBreakerExample {
public static void main(String[] args) {
CircuitBreakerRegistry registry = CircuitBreakerRegistry.ofDefaults();
CircuitBreaker circuitBreaker = registry.circuitBreaker("advancedBreaker");
Supplier<String> decoratedSupplier = CircuitBreaker.decorateSupplier(circuitBreaker, () -> {
// Simulate a call to an external service
return "Response from external service";
});
String result = decoratedSupplier.get();
System.out.println(result);
}
}
Authoritative documentation links for this domain. The model follows markdown links at load time to resolve external references and inline content.