'Distributed systems are the norm today. Choreographies govern how autonomous parts of distributed systems that operate concurrently may communicate with each other. However, it is not always clear whether all communication participants comply with a given choreography design. This book comes to the remedy. Fabrizio Montesi, pioneer of choreographic programming with the Jolie language and microservices community leader, establishes a uniform theory and a notation for choreographies – not only to specify their protocols, but also to check participant conformance and prove desired properties including communication safety and freedom from starvation. Read this book if you want to learn or teach these concepts en route to more robust and more understandable Distributed Systems, and apply its concepts in practice if you want to prove that your language, middleware, and tool creations work as designed.' Olaf Zimmermann, Eastern Switzerland University of Applied Sciences, School of Computer Science, Author of Patterns for API Design - Simplifying Integration with Loosely Coupled Message Exchanges
Introduction: Alice, Bob, concurrency, and distribution; This book; Part I. Foundations: Introduction to Part I; 1. Inference systems; 2. Simple choreographies; 3. Simple processes; 4. Endpoint projection; Part II. Computation: Introduction to Part II; 5. Memory and local computation; 6. Conditionals and knowledge of choice; 7. Recursion; 8. Properties of choreographies and endpoint projection; Part III. Extensions and Variations: Introduction to Part III; 9. Conservative extensions; 10. Choreographic choice; 11. Asynchronous communication; 12. Discussion and further reading; Solutions to selected exercises; Bibliography; Index.