At the moment the code follows approach 2. However it's in no way configurable. It was initially introduced in this way because of a number of test cases that were failing when following these steps.
test with multiple nodes starts client node fires a message into a component using SCA API In parallel the node with the service is coming up and populating the registry reference is asked to send a message to the service before the service endpoint has been replicated around to all nodes Hence there is code in the tribes version of the replicated endpoint registry. The nature of working in this distributed world is that we will always encounter these failure cases. I'd like to maintain some configurable resilience for the most common failures. Without it you may (or may not) need to include retry logic around every use of a reference depending on how that reference is wired which doesn't seem ideal. Simon
