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-rate-limitingImplements rate limiting strategies for distributed systems using the Resilience4j library to control API traffic and enhance system stability.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: distributed-system-rate-limiting description: Implements rate limiting strategies for distributed systems using the Resilience4j library to control API traffic and enhance system stability. license: MIT compatibility: opencode metadata: version: "1.0.0" domain: coding triggers: rate limiting, token bucket, leaky bucket, resilience4j, 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-circuit-breakers, distributed-system-bulkheads
Implements strategies for rate limiting with Resilience4j to ensure that APIs can handle traffic smoothly without being overwhelmed, enhancing the overall stability of distributed systems.
This example demonstrates implementing a token bucket rate limiter using Resilience4j.
import io.github.resilience4j.ratelimiter.RateLimiter;
import io.github.resilience4j.ratelimiter.RateLimiterConfig;
import java.time.Duration;
public class RateLimitingExample {
public static void main(String[] args) {
RateLimiterConfig config = RateLimiterConfig.custom()
.limitForPeriod(10)
.limitRefreshPeriod(Duration.ofSeconds(1))
.timeoutDuration(Duration.ofMillis(500))
.build();
RateLimiter rateLimiter = RateLimiter.of("myRateLimiter", config);
System.out.println("Rate Limiter created: " + rateLimiter.getName());
}
}
In this example, we implement a leaky bucket rate limiter using Resilience4j.
import io.github.resilience4j.ratelimiter.RateLimiter;
import io.github.resilience4j.ratelimiter.RateLimiterConfig;
import java.time.Duration;
public class LeakyBucketExample {
public static void main(String[] args) {
RateLimiterConfig config = RateLimiterConfig.custom()
.limitForPeriod(5)
.limitRefreshPeriod(Duration.ofSeconds(1))
.timeoutDuration(Duration.ofMillis(400))
.build();
RateLimiter leakyBucketLimiter = RateLimiter.of("leakyBucket", config);
System.out.println("Leaky Bucket Rate Limiter created: " + leakyBucketLimiter.getName());
}
}
Authoritative documentation links for this domain. The model follows markdown links at load time to resolve external references and inline content.