How does the EOS BP voting process reach consensus?


I’m curious about the voting process. Wondering if anyone could clarify or point me in the right direction.

Multiple nodes are constantly receiving/losing votes. The top 21 are selected as BPs. How do we reach consensus on the BPs, I mean, votes take time to propagate, thus different nodes have different views of the world. How does EOS reconcile this information?

Let me further clarify, when processing transactions a BP emits a block with let’s say 500 tx.

It’s ok if your transaction was not processed at this point in time, it will probably be picked up in the next few minutes. Furthermore other BPs can easily validate the block, (the only thing a BP is interested is to prevent fraudulent txs).

Voting is different. Every vote counts, (I assume), since it takes time for information to propagate different BPs will have different views of the world.

How do BPs decide what is the correct vote count at a specific point in time when the voting process itself is so active?