Practical TLA+: Planning Driven Development
<div><div><div>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. <i>Practical TLA+</i> shows you how to use TLA+ to specify a complex system and test the design itself for bugs. </div><div><br></div>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. </div><div><br></div><div><br></div><div>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.  </div><div><br></div><div><b>What You'll Learn</b></div><div><ul><li><li>Read and write TLA+ specs</li><li>Check specs for broken invariants, race conditions, and liveness bugs</li><li>Design concurrency and distributed systems</li><li>Learn how TLA+ can help you with your day-to-day production work</li></li></ul></div><div><b><br></b></div><div><b>Who This Book Is For</b></div><div><br></div>Those with programming experience who are new to design and to TLA+.  </div><div><br></div>