Closed MauriceVanVeen closed 1 day ago
For what it's worth I think this type of change makes sense. Quorum is what aligns the leader with the followers. If we're making persistent changes to the state of an asset without going through the Raft apply queue, then we've undermined the point of running Raft in the first place and then all bets are completely off when the leader changes.
Like I said better to discuss on a call / video.
@derekcollison , I've marked this PR ready for review as well. We've discussed that only the store
delivered state requires quorum so it's consistent on all nodes, and it doesn't block/wait for quorum before sending a message to the client.
store.UpdateDelivered
would always be called, without checking quorum. Which meant that we could get a consumer to be ahead on delivered after switching leader. This change makeso.updateDelivered
consistent witho.updateAcks
, which does the same; if clustered propose through RAFT, if not just update delivered directly.Signed-off-by: Maurice van Veen github@mauricevanveen.com