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.2.tar.gz (44.0 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.2-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bulkman-2.0.2.tar.gz
  • Upload date:
  • Size: 44.0 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.2.tar.gz
Algorithm Hash digest
SHA256 2ddb4218094196edd544c9ce814da0b5db323601f7b592c2dea68e7113d35423
MD5 863e10eaa663d9a5a27a738e60ab46f1
BLAKE2b-256 1374e399eb351db389db9a450db75e4bd745181418eeed0a56698f5c758f3664

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bulkman-2.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a4dddc2bbf895ae738aabf0c1616de36a3a6b2bdf3e16f79c78e5059a2d4390c
MD5 32235a847f9fc51f7aacfa976aa490f1
BLAKE2b-256 7093f87ceba89b9921ab42dee1b8fceab21474fecd40c3166afc13f5facba716

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