DocuSign.ConnectionPool (DocuSign v3.1.1)

View Source

Connection pooling configuration for high-throughput DocuSign applications.

This module optimizes HTTP connection management by reusing connections and managing pool sizes for better performance under load.

Configuration

Configure connection pools in your application config:

config :docusign, :pool_options, [
  size: 10,                # Connections per pool (default: 10)
  count: 1,                # Number of pools (default: 1)
  max_idle_time: 300_000,  # Max idle time in ms (default: 5 minutes)
  timeout: 30_000          # Connection timeout (default: 30s)
]

Pool Strategy

Connections are pooled per endpoint:

  • Production: pools for na3.docusign.net, na4.docusign.net, etc.
  • Sandbox: pools for demo.docusign.net

Performance Tuning

  • size: Number of connections kept open to each endpoint
  • count: Number of parallel pools for concurrent request handling
  • max_idle_time: How long idle connections stay open
  • timeout: Maximum time to establish a connection

Examples

# High-throughput configuration
config :docusign, :pool_options, [
  size: 50,                # More connections
  count: 2,                # Multiple pools for concurrency
  max_idle_time: 600_000   # Keep connections alive longer
]

# Conservative configuration
config :docusign, :pool_options, [
  size: 5,
  count: 1,
  max_idle_time: 60_000    # Close idle connections quickly
]

Summary

Functions

Get current pool configuration.

Check if connection pooling is enabled.

Get pool health metrics.

Functions

config()

@spec config() :: map()

Get current pool configuration.

Returns the active pool configuration for inspection.

enabled?()

@spec enabled?() :: boolean()

Check if connection pooling is enabled.

Returns true if custom pool options are configured.

health()

@spec health() :: {:ok, map()} | {:error, :not_available}

Get pool health metrics.

Returns connection pool statistics for monitoring.