# Architecture

Hashman uses a desired state-based system instead of direct commands. Think of it as setting a destination rather than giving turn-by-turn directions.

* **Desired state operations**
  * You set the target state (what you want)
  * System continuously converges toward desired state
  * No need to manually sequence commands
  * System fixes itself when issues occur

### Control loop architecture

<figure><img src="https://2585165192-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F16lz3I7JkYyDusZBiJ6h%2Fuploads%2F5XuRCzFt3sdEOmfv8mn5%2FScreenshot%202024-11-11%20at%2012.51.47.png?alt=media&#x26;token=ba34a3dc-c40e-471f-9dfd-330590c280c4" alt=""><figcaption><p>Hashman's control loop</p></figcaption></figure>

### Key benefits

1. **Reliability**
   * System always trends toward desired state
   * Self-correcting on failures
   * Handles network issues and hiccups
   * Automatic recovery from ASIC errors
2. **Simplicity**
   * No complex command chaining
   * See what's happening
   * Quick problem diagnosis
   * Fewer human operator errors
3. **Scalability**

   * Scales with fleet exansion
   * Consistent behavior across fleet
   * Works anywhere <br>

   Unlike traditional tools that need step-by-step instructions, Hashman automatically figures out how to reach your desired state and optimizes towards it.
