I found a bad bug where the loss of a reply caused a dead lock of of primary and secondary services during sync up. It happens very rarely, but i can happen.
I was wondering of people could share their thoughts in designing robust client-server protocols.
Depends on what you mean by "robust". One definition is "any process that continues to run will halt with an output value in a fixed number of steps, regardless of delays or failures by other processes". This definition is discussed in:
Another paper:
However, there is also a positive paper that applies the same methods:
Is there something more concrete programmers can use in client-server messaging protocols. It's not clear how to turn those papers into systems.
SORRY! I had the wrong reference for the third one (corrected now). The right reference is directly applicable in programming!