Chapter 'Designing a Concurrent Application', section 'Defining the Protocol'