This document (in progress) describes the detailed architecture of the proton library. The concept of a Protocol Engine is central to the proton library, so please read the Protocol Engines document for some important background, in particular the concepts of the top half and the bottom half of a protocol engine. The UML diagram below contains a relatively complete model of the engine API, along with the dividing line between its top and bottom halves.