Video description
"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
Table of Contents
PART 1: INTRODUCTION
Chapter 1 - Why Reactive?
Chapter 1 - Coping with failures
Chapter 1 - Avoiding the ball of mud
Chapter 2 - A walk-through of the Reactive Manifesto
Chapter 2 - Exploiting parallelism
Chapter 2 - The limits of parallel execution
Chapter 2 - Reacting to failure
Chapter 2 - Compartmentalization and bulkheading
Chapter 2 - Losing strong consistency
Chapter 2 - ACID 2.0
Chapter 2 - Accepting updates
Chapter 3 - Tools of the trade
Chapter 3 - Immutability
Chapter 3 - Responsiveness to users
Chapter 3 - Event loops
Chapter 3 - Futures and promises
Chapter 3 - The Actor model
PART 2: THE PHILOSOPHY IN A NUTSHELL
Chapter 4 - Message passing
Chapter 4 - Synchronous vs. asynchronous
Chapter 4 - Delivery guarantees
Chapter 4 - Events as messages
Chapter 5 - Location transparency
Chapter 5 - Explicit message passing to the rescue
Chapter 5 - Message loss
Chapter 5 - Location transparency makes testing simpler
Chapter 6 - Divide and conquer
Chapter 6 - Dependencies vs. descendant modules
Chapter 6 - Advantages of specification and testing
Chapter 7 - Principled failure handling
Chapter 7 - Ownership implies lifecycle control
Chapter 8 - Delimited consistency
Chapter 8 - Segregating responsibilities
Chapter 9 - Nondeterminism by need
Chapter 9 - Sharing nothing simplifies concurrency
Chapter 10 - Message flow
Chapter 10 - Identifying resilience limitations
PART 3: PATTERNS
Chapter 11 - Testing reactive applications
Chapter 11 - String tests
Chapter 11 - Test environment
Chapter 11 - The crux of choosing timeouts
Chapter 11 - Asserting the absence of a message
Chapter 11 - Fully asynchronous tests
Chapter 11 - Testing nondeterministic systems
Chapter 11 - Testing elasticity
Chapter 11 - Infrastructure resilience
Chapter 12 - Fault tolerance and recovery patterns
Chapter 12 - The Error Kernel pattern
Chapter 12 - The Let-It-Crash pattern
Chapter 12 - The pattern, revisited
Chapter 12 - The Circuit Breaker pattern
Chapter 12 - The pattern, revisited
Chapter 13 - Replication patterns
Chapter 13 - Applying the pattern
Chapter 13 - The pattern, revisited
Chapter 13 - Multiple-Master Replication patterns
Chapter 13 - Replication with conflict detection and resolution
Chapter 13 - Conflict-free replicated data types
Chapter 13 - The Active–Active Replication pattern
Chapter 13 - The pattern, revisited
Chapter 14 - Resource-management patterns
Chapter 14 - Applying the pattern
Chapter 14 - The pattern, revisited
Chapter 14 - The Resource Loan pattern
Chapter 14 - The pattern, revisited
Chapter 14 - The Complex Command pattern
Chapter 14 - Applying the pattern
Chapter 14 - The pattern, revisited
Chapter 14 - The Resource Pool pattern
Chapter 14 - The pattern, revisited
Chapter 14 - Patterns for managed blocking
Chapter 14 - The pattern, revisited
Chapter 15 - Message flow patterns
Chapter 15 - Common instances of the pattern
Chapter 15 - The Self-Contained Message pattern
Chapter 15 - The Ask pattern
Chapter 15 - The Forward Flow pattern
Chapter 15 - The Aggregator pattern
Chapter 15 - The Saga pattern
Chapter 15 - The pattern, revisited
Chapter 15 - The Business Handshake pattern
Chapter 15 - The pattern, revisited
Chapter 16 - Flow control patterns
Chapter 16 - The Managed Queue pattern
Chapter 16 - The Drop pattern
Chapter 16 - The pattern, revisited
Chapter 16 - The Throttling pattern
Chapter 17 - State management and persistence patterns
Chapter 17 - The Sharding pattern
Chapter 17 - The Event-Sourcing pattern
Chapter 17 - The Event Stream pattern