Needs to handle the following scenarios (at least):
- join/leave in the consumer site (i.e. site that receives the the state)
I think NBST will handle most of join scenario. However, the leave scenario needs to be handle carefully or we can loose some key chunks. (easy solution: resend all the chunk?)
- join/leave in the producer site (i.e. site that sends the state)
trick scenario. we have to be sure that all keys are really sent! (naive solution: restart the state transfer)
- state transfer coordinator dies
the coordinator node is the one that receives the acks when all members has finished sending the keys. Or we replicate its state or we restart the state transfer...
- site master dies in consumer site
No idea which keys was already applied or not. need to resend the chunks...