### Navigation

- index
- modules |
- previous |
- python-gearman v2.0.2 documentation »

# 3. Design document

Architectural design document for developers

## 3.1. GearmanConnectionManager - Bridges low-level I/O <-> command handlers

- Only class that an API user should directly interact with
- Manages all I/O: polls connections, reconnects failed connections, etc...
- Forwards commands between Connections <-> CommandHandlers
- Manages multiple Connections and multple CommandHandlers
- Manages global state of an interaction with Gearman (global job lock)

## 3.2. GearmanConnection - Manages low-level I/O

- A single connection between a client/worker and a server
- Thinly wrapped socket that can reconnect
- Converts binary strings <-> Gearman commands
- Manages in/out data buffers for socket-level operations
- Manages in/out command buffers for gearman-level operations

## 3.3. GearmanCommandHandler - Manages commands

- Represents the state machine of a single GearmanConnection
- 1-1 mapping to a GearmanConnection (via GearmanConnectionManager)
- Sends/receives commands ONLY - does no buffering
- Handles all command generation / interpretation

### Navigation

- index
- modules |
- previous |
- python-gearman v2.0.2 documentation »