Skip to content

baldur_pro.services.replay — Replay Queue

Backpressure-aware replay of stored failures: ReplayQueueService with its BackpressureStatus and RateLimitStatus signals.

🔒 PRO Feature — requires a baldur-pro license

These symbols ship in the baldur-pro distribution. PRO modules import normally — there is no ImportError. PRO features activate only when baldur.init() runs with a valid BALDUR_LICENSE_KEY; without it the system runs with OSS defaults and register_pro_services() logs entitlement.pro_registration_skipped.

replay

Replay Queue Package.

Provides replay queue infrastructure with rate limiting and backpressure support for the baldur framework.

Usage

from baldur_pro.services.replay import ( get_replay_queue_service, reset_replay_queue_service, )

service = get_replay_queue_service() success = service.enqueue_raw(payload, source="my_component")

Status: Public

BackpressureStatus dataclass

BackpressureStatus(
    active: bool = False,
    queue_depth: int = 0,
    max_depth: int = 10000,
    consumer_lag: float = 0.0,
    throttle_percent: float = 0.0,
)

Status of backpressure mechanisms for the replay queue.

Attributes:

Name Type Description
active bool

Whether backpressure is currently being applied.

queue_depth int

Current number of items in the queue.

max_depth int

Maximum queue depth before backpressure activates.

consumer_lag float

Estimated consumer lag in seconds.

throttle_percent float

Current throttle percentage (0-100).

RateLimitStatus dataclass

RateLimitStatus(
    enabled: bool = True,
    current_rate: int = 0,
    limit: int = 1000,
    rejected_count: int = 0,
    window_seconds: int = 60,
)

Status of the rate limiter for the replay queue.

Attributes:

Name Type Description
enabled bool

Whether rate limiting is currently active.

current_rate int

Number of requests accepted in the current window.

limit int

Maximum allowed requests per window.

rejected_count int

Total number of requests rejected due to rate limiting.

window_seconds int

Duration of the sliding window in seconds.

ReplayQueueService

ReplayQueueService(
    max_depth: int = DEFAULT_MAX_DEPTH,
    rate_limit: int = DEFAULT_RATE_LIMIT,
    rate_window_seconds: int = DEFAULT_RATE_WINDOW_SECONDS,
    backpressure_threshold: float = DEFAULT_BACKPRESSURE_THRESHOLD,
    rate_limiting_enabled: bool = True,
)

In-memory replay queue with rate limiting and backpressure.

This service provides a standalone replay queue that works without external dependencies (Redis, a message broker, etc.). It is designed for environments where the full replay infrastructure may not be available, such as isolated testing scenarios.

Thread-safety

All public methods are protected by a threading.Lock, making this class safe for concurrent use from multiple threads.

Fail-safe defaults
  • Rate limiting enabled with generous defaults (1000 req/60s)
  • Max queue depth of 10,000 to prevent unbounded memory growth
  • Backpressure activates at 80% queue capacity
  • All operations degrade gracefully on internal errors

Initialize the replay queue service.

Parameters:

Name Type Description Default
max_depth int

Maximum queue depth before rejecting new items.

DEFAULT_MAX_DEPTH
rate_limit int

Maximum number of enqueues per window.

DEFAULT_RATE_LIMIT
rate_window_seconds int

Sliding window duration in seconds.

DEFAULT_RATE_WINDOW_SECONDS
backpressure_threshold float

Queue fullness ratio (0.0-1.0) at which backpressure activates.

DEFAULT_BACKPRESSURE_THRESHOLD
rate_limiting_enabled bool

Whether to enforce rate limiting.

True

enqueue_raw

enqueue_raw(
    payload: bytes, source: str = "unknown"
) -> bool

Enqueue a raw payload for replay processing.

Parameters:

Name Type Description Default
payload bytes

Raw bytes payload to enqueue.

required
source str

Identifier of the component that produced the payload.

'unknown'

Returns:

Type Description
bool

True if the payload was accepted, False if rejected due to

bool

queue depth limit or rate limiting.

dequeue

dequeue() -> _QueueEntry | None

Dequeue the next entry for processing.

Returns:

Type Description
_QueueEntry | None

The next queue entry, or None if the queue is empty.

get_rate_limit_status

get_rate_limit_status() -> RateLimitStatus

Get current rate limiting status.

Returns:

Type Description
RateLimitStatus

RateLimitStatus with current rate limiting metrics.

get_backpressure_status

get_backpressure_status() -> BackpressureStatus

Get current backpressure status.

Returns:

Type Description
BackpressureStatus

BackpressureStatus with current queue depth and throttle metrics.

get_queue_depth

get_queue_depth() -> int

Get the current number of items in the queue.

Returns:

Type Description
int

Current queue depth.

get_stats

get_stats() -> dict[str, Any]

Get overall queue statistics.

Returns:

Type Description
dict[str, Any]

Dict with enqueue/dequeue counts, depth, and status info.

get_replay_queue_service

get_replay_queue_service() -> ReplayQueueService

Get the singleton ReplayQueueService instance.

Thread-safe lazy initialization. Creates the service with default configuration on first access.

Returns:

Type Description
ReplayQueueService

The singleton ReplayQueueService instance.

reset_replay_queue_service

reset_replay_queue_service() -> None

Reset the singleton instance (for testing).

This clears the singleton so the next call to get_replay_queue_service() creates a fresh instance.