Hi, I was reading the Raft paper and was wondering about a failure scenario. Let’s say the leader receives a write from the client and appends the entry to its own log. This entry is NOT committed right now. The leader sends AppendEntries RPC to follower nodes and asks them to append the entry to their log. The followers reply with positive ack. The leader commits the entry to its own log now.
My question is:
Does the leader send +ve ack to the client right now? If ack is sent to client, than that would mean that the write is committed to a majority of servers, right? But in this case, it is still not committed to the follower nodes. If the leader crashes after sending ack to client but before sending the next AppendEntries to followers, there can be potential data loss right?
Just correct me if I am wrong. I want to make my understanding clear.