Oreilly - Reactive Design Patterns Video Edition
by Dr. Roland Kuhn, Brian Hanafee, Jamie Allen | Released February 2017 | ISBN: None
"Does an excellent job explaining Reactive architecture and design, starting with first principles and putting them into a practical context." From the Foreword by Jonas Boner, creator of Akka Reactive Design Patterns is a clearly written guide for building message-driven distributed systems that are resilient, responsive, and elastic. In this book you'll find patterns for messaging, flow control, resource management, and concurrency, along with practical issues like test-friendly designs. All patterns include concrete examples using Scala and Akka. Inside: The definitive guide to the Reactive Manifesto Patterns for flow control, delimited consistency, fault tolerance, and much more Hard-won lessons about what doesn't work Architectures that scale under tremendous load Most examples use Scala, Java, and Akka. Readers should be familiar with distributed systems. Dr. Roland Kuhn led the Akka team at Lightbend and coauthored the Reactive Manifesto. Brian Hanafee and Jamie Allen are experienced distributed systems architects. If the 'Reactive Manifesto' gave us a battle cry, this work gives us the strategic handbook for battle. Joel Kotarski, The Rawlings Group An engaging tour of distributed computing and the building blocks of responsive, resilient software. William Chan, LinkedIn This book is so reactive, it belongs on the left-hand side of the periodic table! Andy Hicks, Tanis Systems NARRATED BY MARK THOMAS Show and hide more
- PART 1: INTRODUCTION
- Chapter 1 - Why Reactive? 00:10:18
- Chapter 1 - Coping with failures 00:09:24
- Chapter 1 - Avoiding the ball of mud 00:06:59
- Chapter 2 - A walk-through of the Reactive Manifesto 00:11:54
- Chapter 2 - Exploiting parallelism 00:12:43
- Chapter 2 - The limits of parallel execution 00:05:23
- Chapter 2 - Reacting to failure 00:06:15
- Chapter 2 - Compartmentalization and bulkheading 00:08:45
- Chapter 2 - Losing strong consistency 00:05:14
- Chapter 2 - ACID 2.0 00:07:58
- Chapter 2 - Accepting updates 00:09:40
- Chapter 3 - Tools of the trade 00:06:47
- Chapter 3 - Immutability 00:09:22
- Chapter 3 - Responsiveness to users 00:08:20
- Chapter 3 - Event loops 00:07:35
- Chapter 3 - Futures and promises 00:12:54
- Chapter 3 - The Actor model 00:11:04
- PART 2: THE PHILOSOPHY IN A NUTSHELL
- Chapter 4 - Message passing 00:11:17
- Chapter 4 - Synchronous vs. asynchronous 00:09:33
- Chapter 4 - Delivery guarantees 00:08:40
- Chapter 4 - Events as messages 00:05:46
- Chapter 5 - Location transparency 00:06:17
- Chapter 5 - Explicit message passing to the rescue 00:05:50
- Chapter 5 - Message loss 00:07:13
- Chapter 5 - Location transparency makes testing simpler 00:07:15
- Chapter 6 - Divide and conquer 00:07:38
- Chapter 6 - Dependencies vs. descendant modules 00:07:11
- Chapter 6 - Advantages of specification and testing 00:06:46
- Chapter 7 - Principled failure handling 00:06:46
- Chapter 7 - Ownership implies lifecycle control 00:06:59
- Chapter 8 - Delimited consistency 00:11:21
- Chapter 8 - Segregating responsibilities 00:10:55
- Chapter 9 - Nondeterminism by need 00:09:34
- Chapter 9 - Sharing nothing simplifies concurrency 00:11:18
- Chapter 10 - Message flow 00:07:04
- Chapter 10 - Identifying resilience limitations 00:06:52
- PART 3: PATTERNS
- Chapter 11 - Testing reactive applications 00:06:56
- Chapter 11 - String tests 00:06:20
- Chapter 11 - Test environment 00:09:02
- Chapter 11 - The crux of choosing timeouts 00:14:51
- Chapter 11 - Asserting the absence of a message 00:10:13
- Chapter 11 - Fully asynchronous tests 00:09:24
- Chapter 11 - Testing nondeterministic systems 00:10:03
- Chapter 11 - Testing elasticity 00:10:44
- Chapter 11 - Infrastructure resilience 00:09:27
- Chapter 12 - Fault tolerance and recovery patterns 00:13:03
- Chapter 12 - The Error Kernel pattern 00:14:41
- Chapter 12 - The Let-It-Crash pattern 00:11:41
- Chapter 12 - The pattern, revisited 00:06:47
- Chapter 12 - The Circuit Breaker pattern 00:08:56
- Chapter 12 - The pattern, revisited 00:05:07
- Chapter 13 - Replication patterns 00:06:53
- Chapter 13 - Applying the pattern 00:13:26
- Chapter 13 - The pattern, revisited 00:05:56
- Chapter 13 - Multiple-Master Replication patterns 00:09:19
- Chapter 13 - Replication with conflict detection and resolution 00:06:53
- Chapter 13 - Conflict-free replicated data types 00:16:03
- Chapter 13 - The Active–Active Replication pattern 00:13:39
- Chapter 13 - The pattern, revisited 00:10:01
- Chapter 14 - Resource-management patterns 00:04:22
- Chapter 14 - Applying the pattern 00:13:33
- Chapter 14 - The pattern, revisited 00:04:53
- Chapter 14 - The Resource Loan pattern 00:07:42
- Chapter 14 - The pattern, revisited 00:08:26
- Chapter 14 - The Complex Command pattern 00:05:08
- Chapter 14 - Applying the pattern 00:15:56
- Chapter 14 - The pattern, revisited 00:04:03
- Chapter 14 - The Resource Pool pattern 00:07:04
- Chapter 14 - The pattern, revisited 00:05:05
- Chapter 14 - Patterns for managed blocking 00:07:55
- Chapter 14 - The pattern, revisited 00:07:33
- Chapter 15 - Message flow patterns 00:07:10
- Chapter 15 - Common instances of the pattern 00:13:26
- Chapter 15 - The Self-Contained Message pattern 00:10:35
- Chapter 15 - The Ask pattern 00:12:01
- Chapter 15 - The Forward Flow pattern 00:05:49
- Chapter 15 - The Aggregator pattern 00:08:07
- Chapter 15 - The Saga pattern 00:08:50
- Chapter 15 - The pattern, revisited 00:07:55
- Chapter 15 - The Business Handshake pattern 00:09:56
- Chapter 15 - The pattern, revisited 00:04:54
- Chapter 16 - Flow control patterns 00:09:43
- Chapter 16 - The Managed Queue pattern 00:07:27
- Chapter 16 - The Drop pattern 00:06:35
- Chapter 16 - The pattern, revisited 00:07:25
- Chapter 16 - The Throttling pattern 00:08:51
- Chapter 17 - State management and persistence patterns 00:09:10
- Chapter 17 - The Sharding pattern 00:05:57
- Chapter 17 - The Event-Sourcing pattern 00:08:34
- Chapter 17 - The Event Stream pattern 00:11:11
Show and hide more