I confirm that the new member event must be triggered first. On the other hand, I don't believe that setStatus trigger any event before the member is actually added to the service. So calling setStatus with triggerEvent = true seems ineffective. 

If we are adding a local member, the initial status should be down anyway and then transition from down to joining to up. If the member is remote, the new member event should be enough if the status is properly set first.

I suggest to call So calling setStatus with triggerEvent = false explicitly and to comment why this is like that.