Engineering specifications

Explain the external behavior, constraints, data model and failure handling before describing the implementation.

Include how the design will be tested, deployed and recovered if a rollout fails.