I had found a good blog about the basics of the Akka Actor Model; and everything looked cool.
However, I then started following up to look at the Akka Docs for information about Best Practices to handle the complexities of distributed Fault-Tolerance. At the moment; the options for handling this look pretty hairy to me; since there seems to be a lot of reinventing-the-wheel for policies to ensure Availability and Reliability. I'm just trying to understand exactly how this would be used in Production; without completely stressing-out DevOps. Maybe there's a higher-level framework or tool that everyone else uses instead? Then, I saw a disclaimer in the Akka Docs about how certain APIs for Akka Streams don't work well in a Remote Akka Actor Cluster scenario(1) ActorPublisher and ActorSubscriber cannot be used with remote actors, because if signals of the Reactive Streams protocol (e.g. request) are lost the the stream may deadlock. Could anyone recommend a resource to learn about 'Next-Level, Best Practices for Akka Actor Fault-Tolerance'? The Akka Documentation isn't able to provide this kind of integrated perspective that I'm looking for! THANK YOU so much in advance for any information resources to help me find out for myself the answers to the following: * - TODO 1: SUPERVISOR-COORDINATED SHUTDOWN STRATEGY RECOMMENDED; but SPOF if MASTER SUPERVISOR fails! * - HOW to detect shutdown -- i.e. do we need to reinvent the wheel with our own 'heartbeat'-check policy? * - HOW to shutdown simply and gracefully; via having Supervisor MESSAGE Children, so they can finish processing their event queues * before final shutdown: * - http://doc.akka.io/api/akka/2.3.0/#akka.actor.SupervisorStrategy * SHUTDOWN (top-down or bottom-up?) of hierarchy via delegating "ActorSystem.terminate", * OR "Manager.gracefulStop() with timeout" * OR via Supervisor's "DeathWatch" * OR via "Poison Pill"? * * - TODO 2: FAULT-TOLERANCE -- how is that managed to RECONSTITUTE state to * bring up replacement Actor (e.g. recover from snapshot at time first Actor died, * including replay of interim input message queue while first Actor unavailable) * * * - TODO 3: What is default message ordering to an Actor -- serial-single-threaded, first-one-arriving-wins? * However, with multiple Senders on one Receiver and network latency; may not guarantee message order to Receiver * corresponding to Sender's message order. i.e. Message Order is NOT guaranteed, BUT serialization of messaged to Actor IS * * - TODO 4: find out best-practices for SUBSCRIBER retries on ACK-TIMEOUT failures * * * - TODO 5: find out how to integrate with Cassandra distributed UUID generator in a CLUSTER scenario for creating message * Sequence IDs to deal with ordering issues from (TODO 3) above -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.