HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
USE THE ACTOR MODEL TO BUILD SIMPLER SYSTEMS WITH BETTER PERFORMANCE AND SCALABILITY
Enterprise software development has been much more difficult and failure-prone than it needs to be. Now, veteran software engineer and author Vaughn Vernon offers an easier and more rewarding method to succeeding with Actor model. Reactive Messaging Patterns with the Actor Model shows how the reactive enterprise approach, Actor model, Scala, and Akka can help you overcome previous limits of performance and scalability, and skillfully address even the most challenging non-functional requirements.
Reflecting his own cutting-edge work, Vernon shows architects and developers how to translate the longtime promises of Actor model into practical reality. First, he introduces the tenets of reactive software, and shows how the message-driven Actor model addresses all of them–making it possible to build systems that are more responsive, resilient, and elastic. Next, he presents a practical Scala bootstrap tutorial, a thorough introduction to Akka and Akka Cluster, and a full chapter on maximizing performance and scalability with Scala and Akka.
Building on this foundation, you’ll learn to apply enterprise application and integration patterns to establish message channels and endpoints; efficiently construct, route, and transform messages; and build robust systems that are simpler and far more successful.
Coverage Includes
Find unique online training on Domain-Driven Design, Scala, Akka, and other software craftsmanship topics using the for{comprehension} website at forcomprehension.com.
Foreword xiii
Preface xv
Acknowledgments xxiii
About the Author xxv
Chapter 1: Discovering the Actor Model and the Enterprise, All Over Again 1
Why Enterprise Software Development Is Hard 1
Introducing Reactive Applications 5
Enterprise Applications 9
Actor Model 10
The Actor Way Is Explicit 22
What Next? 24
Chapter 2: The Actor Model with Scala and Akka 25
How to Get Scala and Akka 26
Programming with Scala 29
Programming with Akka 43
Summary 104
Chapter 3: Performance Bent 107
Transistors Matter 107
Clock Speed Matters 109
Cores and Cache Matter 111
Scale Matters 112
Multithreading Is Hard 116
How the Actor Model Helps 122
The Patterns 126
Chapter 4: Messaging with Actors 127
Message Channel 128
Message 130
Pipes and Filters 135
Message Router 140
Message Translator 143
Message Endpoint 145
Summary 147
Chapter 5: Messaging Channels 149
Point-to-Point Channel 151
Publish-Subscribe Channel 154
Datatype Channel 167
Invalid Message Channel 170
Dead Letter Channel 172
Guaranteed Delivery 175
Channel Adapter 183
Message Bridge 185
Message Bus 192
Summary 200
Chapter 6: Message Construction 201
Command Message 202
Document Message 204
Event Message 207
Request-Reply 209
Return Address 211
Correlation Identifier 215
Message Sequence 217
Message Expiration 218
Format Indicator 222
Summary 226
Chapter 7: Message Routing 227
Content-Based Router 228
Message Filter 232
Dynamic Router 237
Recipient List 245
Splitter 254
Aggregator 257
Resequencer 264
Composed Message Processor 270
Scatter-Gather 272
Routing Slip 285
Process Manager 292
Message Broker 308
Summary 310
Chapter 8: Message Transformation 313
Envelope Wrapper 314
Content Enricher 317
Content Filter 321
Claim Check 325
Normalizer 332
Canonical Message Model 333
Summary 336
Chapter 9: Message Endpoints 337
Messaging Gateway 338
Messaging Mapper 344
Transactional Client/Actor 351
Polling Consumer 362
Event-Driven Consumer 371
Competing Consumers 371
Message Dispatcher 374
Selective Consumer 377
Durable Subscriber 379
Idempotent Receiver 382
Service Activator 390
Summary 391
Chapter 10: System Management and Infrastructure 393
Control Bus 394
Detour 395
Wire Tap 397
Message Metadata/History 398
Message Journal/Store 402
Smart Proxy 406
Test Message 411
Channel Purger 414
Summary 416
Appendix A: Dotsero: An Akka-like Toolkit for .NET 417
Dotsero Actor System 417
Actors Using C# and .NET 420
Dotsero Implementation 425
Summary 427
Bibliography 429
Index 433
We've made every effort to ensure the accuracy of this book and its companion content. Any errors that have been confirmed since this book was published can be downloaded below.