Learn how to design complex correct programs and fix problems before writing a single line of
code. This book is a practical comprehensive resource on TLA+ programming with rich complex
examples. Practical TLA+ shows you how to use TLA+ to specify a complex system and test the
design itself for bugs. You'll learn how even a short TLA+ spec can find critical bugs. Start
by getting your feet wet with an example of TLA+ used in a bank transfer system to see how it
helps you design test and build a better application. Then get some fundamentals of TLA+
operators logic functions PlusCal models and concurrency. Along the way you will discover
how to organize your blueprints and how to specify distributed systems and eventual
consistency. Finally you'll put what you learn into practice with some working case study
applications applying TLA+ to a wide variety of practical problems: from algorithm performance
and data structures to business code and MapReduce. After reading and using this book you'll
have what you need to get started with TLA+ and how to use it in your mission-critical
applications. What You'll Learn Read and write TLA+ specs Check specs for broken invariants
race conditions and liveness bugs Design concurrency and distributed systems Learn how TLA+
can help you with your day-to-day production work Who This Book Is For Those with programming
experience who are new to design and to TLA+.