
Applied Akka Patterns
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Cover
- Copyright
- Table of Contents
- Preface
- Conventions Used in This Book
- O'Reilly Safari
- How to Contact Us
- Acknowledgments
- Chapter 1. The Actor Model
- Reality Is Eventually Consistent
- Deconstructing the Actor Model
- All Computation Is Performed Within an Actor
- Actors Can Communicate Only Through Messages
- Actors Can Create Child Actors
- Actors Can Change Their State or Behavior
- Everything Is an Actor
- Uses of the Actor Model
- Defining Clear Boundaries
- When Is the Actor Model Appropriate?
- Conclusion
- Chapter 2. Introducing Akka
- What Is Akka?
- Akka Is Open Source
- Akka Is Under Active Development
- Akka Is Distributed by Design
- Akka Components
- Akka Actor
- Child Actors
- Remoting: Actors on Different JVMs
- Clustering: Automatic Management of Membership
- Akka HTTP
- TestKit
- Contrib
- Akka OSGi
- Akka HTTP
- Akka Streams
- Akka's Implementation of the Actor Model
- Akka's Actors in the Actor Model
- Message Passing
- Actor Systems
- The Akka Typed Project
- Conclusion
- Chapter 3. Distributed Domain-Driven Design
- DDD Overview
- The Benefits of DDD
- Components of DDD
- Domain Entities
- Domain Value Objects
- Aggregates and Aggregate Roots
- Repositories
- Factories and Object Creation
- Domain Services
- Bounded Contexts
- Conclusion
- Chapter 4. Good Actor Design
- Starting Small
- Encapsulating State in Actors
- Encapsulating State by Using Fields
- Encapsulating State by Using "State" Containers
- Encapsulating State by Using become
- Mixing Futures with Actors
- Ask Pattern and Alternatives
- Problems with Ask
- Accidental Complexity
- Alternatives to Ask
- Commands Versus Events
- Constructor Dependency Injection
- actorSelection via Path
- Conclusion
- Chapter 5. Good Data Flow
- Throughput Versus Latency
- Streams
- Routers
- Mailboxes
- Unbounded Mailboxes
- Bounded Mailboxes
- Work Pulling
- Back Pressure
- Acks
- High-Water Marks
- Queue-Size Monitoring
- Rate Monitoring
- Akka Streams
- Source
- Sink
- RunnableGraph
- Flow
- Junctions
- Back Pressure in Akka Streams
- Using Akka Streams
- Conclusion
- Chapter 6. Consistency and Scalability
- Transactions and Consistency
- Strong Versus Eventual Consistency
- Concurrency Versus Parallelism
- Why Globally Consistent Distributed State Doesn't Scale
- Location Transparency
- Delivery Guarantees
- At Most Once
- At Least Once
- Exactly Once Doesn't Exist (But Can Be Approximated)
- How Do You Approximate Exactly Once Delivery?
- Cluster Singleton
- Scalability
- Avoid Global State
- Avoid Shared State
- Follow the Actor Model
- Avoid Sequential Operations
- Isolate Blocking Operations
- Monitor and Tune
- Cluster Sharding and Consistency
- Sharding
- Sharding in Akka
- Shard Key Generation
- Shard Distribution
- Consistency Boundary
- Scalability Boundary
- Sharding Aggregate Roots
- Persistence
- Passivation
- Using Cluster Sharding for Consistency
- Conclusion
- Chapter 7. Fault Tolerance
- Types of Failures
- Exceptions
- Fatal Errors in the JVM
- External Service Failures
- Failing to Meet a Service-Level Agreement
- Operating System and Hardware-Level Failures
- Isolating Failures
- Bulkheading
- Graceful Degradation
- Isolating Failure by Using Akka Cluster
- Controlling Failures by Using Circuit Breakers
- Dealing with Failures
- Dealing with Exceptions (Let It Crash)
- Dealing with External Service Failures
- Conclusion
- Chapter 8. Availability
- Microservices Versus Monoliths
- Bounded Contexts as Microservices
- Fine-Grained Microservices
- Cluster-Aware Routers
- Distributed Data
- Graceful Degradation
- Deployment
- Staged Deployment/Rolling Restarts
- Blue/Green Deployment
- Crash Recovery/Operational Monitoring
- Health Checks and Application Status Pages
- Metrics
- Logging
- Watchdog Tools
- Conclusion
- Chapter 9. Performance
- Isolating Bottlenecks
- Tuning Akka
- Reduce or Isolate Blocking Sections
- Make the Message Process in Less Time
- Engage More Actors on Processing the Messages
- Dispatchers
- The Standard Dispatcher
- Pinned Dispatcher
- Balancing Dispatcher
- Calling-Thread Dispatcher
- When to Use Your Own Dispatchers
- Increase Parallelism
- Conclusion
- Afterword
- Bibliography
- Index
- About the Authors
- Colophon
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.