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.

Reply via email to