If two nodes broadcast different versions of the next block simultaneously , some nodes may receive one or the other first. In that case, they work on the first one they received but save the other branch in case it becomes longer. The tie will be broken when the next proof-of-work is found and one branch becomes longer;
I got this information from the original publication about Bitcoin. But how long is this second branch saved in memory pool of nodes? How is this conflict resolved actually? Is there any paper mentioning this?