Essential complexity is the unavoidable difficulty imposed by required domain behavior. In spaceship control software, duplicated subsystems, fault-tolerant communication, and recovery codes cannot be removed without compromising the mission. section 1.3
The goal is not to erase essential complexity, but to prevent additional implementation complexity from obscuring it. A higher-level abstraction can hide inconsistent native APIs, unify syntax, and keep the program concise, clean, and testable. section 1.3
Spaceship engine control
The domain requires commands such as starting boosters and starting a rotary engine, but their native APIs differ. The essential behavior remains; an abstraction can present these operations consistently. section 1.3
Table 1.1 Spaceship API (view table figure)
| Command |
Native API function |
|---|---|
| Start boosters |
int send(BOOSTERS, START, 0) |
| Stop boosters |
int send(BOOSTERS, STOP, 0) |
| Start rotary engine |
core::request::result |
| Stop rotary engine |
core::request::result |
Compare engine-control operations with their differing native API calls. section 1.3

