Thanks I will read with great care the 2 links you provided. However I will risk asking a related question. Sorry if the 2 links would have give me the answer.
Does the secondaries acknowledge the client’s driver directly and it is the driver that ensures that w:n is met or does the secondaries acknowledge the primary and then the primary acknowledge the driver when w:n is met. It might not be relevant as it might be too implementation specific.
I can see benefits in the 2 cases.
- When the secondaries acknowledge to the driver, the primary has less work to do as it only cares about its own acknowledgement. But each driver has to implement the logic to ensure w:n is met.
- When the secondaries acknowledge to the primary, the driver are simple since they only wait 1 acknowledge that will come from the primary when w:n is met. But the load on the primary is higher since it has to manage the w:n of all the clients.
As a developer I am curious of how it is done. But I would understand if you prefer not to go into the implementation details. One thing is sure is that for the client, the driver’s user, it does not change anything.