Skip to main content

Bulkman

Enterprise-Grade Bulkhead Pattern for Python

Bulkman is a robust, production-ready implementation of the Bulkhead pattern, designed to isolate resources and prevent cascading failures in mission-critical distributed systems. It supports both modern async (AnyIO/asyncio) and traditional synchronous (Threading) workloads with zero overhead.

Key Capabilities

  • Resource Isolation: Limits concurrent access to prevent service exhaustion.
  • Circuit Breaker Integration: Built-in distributed circuit breaking via resilient-circuit (opt-in, disabled by default).
  • Dual Mode:
    • Async: AnyIO-based (asyncio) for high-concurrency IO.
    • Sync: Zero-overhead ThreadPoolExecutor implementation for CPU-bound or blocking IO tasks.
  • Observability: Full contextvars support for distributed tracing (OpenTelemetry/Datadog).
  • Type Safe: 100% type-hinted and rigorously tested (>92% coverage).

Documentation

Quick Install

pip install bulkman

Quick Example (Blocking/Threading)

For legacy or synchronous applications, use BulkheadThreading:

from bulkman import BulkheadThreading, BulkheadConfig

# Configure
config = BulkheadConfig(name="db_writer", max_concurrent_calls=10, timeout_seconds=5.0)
bulkhead = BulkheadThreading(config)

# Execute
try:
    future = bulkhead.execute(my_blocking_function, data)
    result = future.result(timeout=5.0)
    print(result.result)
except TimeoutError:
    print("System overloaded")

👉 See the User Guide for async examples

License

Licensed under the Apache License 2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bulkman-2.0.3.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bulkman-2.0.3-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file bulkman-2.0.3.tar.gz.

File metadata

  • Download URL: bulkman-2.0.3.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for bulkman-2.0.3.tar.gz
Algorithm Hash digest
SHA256 b734d6de74d1603c81fe0992527cbcc874e5c3131e48b016fe13982e8c054ac7
MD5 67d5717ed6062d1b2ca79babf4fa226c
BLAKE2b-256 55a9a03340f95afdfc1b27fb6d79c635cfad784c3ac0ff99de71540cab236714

See more details on using hashes here.

File details

Details for the file bulkman-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: bulkman-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for bulkman-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1e455be8ae49e2905750ac640cc4e07e2dfcbe6c55140eb542eb764ef5d64b2d
MD5 f3d61e91545d6f711a3f7c4837fe50d8
BLAKE2b-256 1c89ac4e6f082c143d45146b11ae340fe53d443e185d28088e4952824f28eada

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page