Package-level declarations

Types

Link copied to clipboard
interface Bulkhead

A Bulkhead can be used to limit the number of concurrent executions.

Link copied to clipboard

A configuration builder for a Bulkhead.

Link copied to clipboard

Exception thrown when the bulkhead cannot accept a new call. This occurs when both the concurrent call limit and the waiting queue are full, or when waiting for a permit exceeds the configured BulkheadConfig.timeout.

Link copied to clipboard

Registry of named DefaultBulkhead instances so multiple com.santimattius.resilient.ResilientPolicy configurations can share the same bulkhead limits (e.g. one pool per downstream "payments", "db").

Link copied to clipboard
data class BulkheadSnapshot(val activeConcurrentCalls: Int, val waitingCalls: Int, val maxConcurrentCalls: Int, val maxWaitingCalls: Int)

Point-in-time snapshot of a Bulkhead for health/readiness and metrics.

Link copied to clipboard
class DefaultBulkhead(config: BulkheadConfig, onRejected: (reason: String) -> Unit? = null) : Bulkhead

A semaphore-based implementation of the Bulkhead pattern.