ResilienceConfig

@Serializable
data class ResilienceConfig(val circuitBreakers: Map<String, CircuitBreakerSettings> = emptyMap(), val bulkheads: Map<String, BulkheadSettings> = emptyMap(), val rateLimiters: Map<String, RateLimiterSettings> = emptyMap(), val timeLimiters: Map<String, TimeLimiterSettings> = emptyMap())(source)

Declarative, externalizable configuration for named resilience instances (the application.yml-style equivalent of the programmatic DSLs).

Durations: ISO-8601 ("PT30S") in JSON; ISO or Kotlin forms (30s, 1m) in properties. Load from JSON via fromJson, from flat properties via fromProperties (YAML/Spring application.properties flattened to Map<String, String>), then build live instances with ResilienceInstances.create.

Property key format: <kind>.<name>.<setting>, with kinds circuitBreaker, bulkhead, rateLimiter, timeLimiter, e.g. circuitBreaker.payments.failureThreshold=3.

val config = ResilienceConfig.fromJson("""
{"circuitBreakers":{"payments":{"failureThreshold":3,"resetTimeout":"10s"}}}
""")
val instances = ResilienceInstances.create(config)
instances.circuitBreaker("payments").execute { call() }

Constructors

Link copied to clipboard
constructor(circuitBreakers: Map<String, CircuitBreakerSettings> = emptyMap(), bulkheads: Map<String, BulkheadSettings> = emptyMap(), rateLimiters: Map<String, RateLimiterSettings> = emptyMap(), timeLimiters: Map<String, TimeLimiterSettings> = emptyMap())

Types

Link copied to clipboard
object Companion

Factories for ResilienceConfig.

Properties

Link copied to clipboard

Bulkhead settings by instance name.

Link copied to clipboard

Circuit-breaker settings by instance name.

Link copied to clipboard

Token-bucket rate-limiter settings by instance name.

Link copied to clipboard

Time-limiter settings by instance name.