Applied Akka patterns : a hands-on guide to designing distributed applications /

Saved in:
Bibliographic Details
Main Author: Nash, Michael
Other Authors: Waldron, Wade
Format: Electronic eBook
Language:English
Published: Beijing ; Boston : O'Reilly Media, [2017]
Subjects:
Online Access:CONNECT
Table of Contents:
  • 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 DevelopmentAkka 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 CreationDomain 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 MailboxesWork 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.