Earlier quoted context omitted.
> The frontend optimistically applies all moves you make immediately. It then builds up a dependency graph of the moves you’ve made, and backs them out if it receives a conflicting update before the server acks your move. The dependency graph is between pieces you’re interacting with? Meaning if you move a queen and are trying to capture a pawn, and there’s potentially a rook that can capture your queen, those 3 are…
Ah yes good question! Here's some context for you. First off, the way moves work: (edit: I realized I didn't answer your question. If we receive a captured for a piece we're optimistically tracking that always takes precedence, since once a piece is captured it can't move anymore!) * clients send a token with each move * they either receive a cancel or accept for each token, depending on if the move is valid. If they…
Would be really cool to read about the different designs and consideration and how you arrived at this in your blog post!