> every request received by a non-failing node in the system must result in a response
I don't believe that encodes latency
Instead, here's consistency:
> any read operation that begins after a write operation completes must return that value, or the result of a later write operation
"after a write operation completes" feels like where latency kicks in? Because within that space you can play around with completing a write operation to get what you want.
It's impossible to distinguish between high latency and unavailability. You can model unavailability as infinite latency.
In a real system you can wait for a partition event to resolve itself before replying which preserves consistency at the cost of latency (availability).
> In a real system you can wait for a partition event to resolve itself before replying which preserves consistency at the cost of latency (availability).
This is true, but PACELC states that even if there is no partition you still have a consistency vs latency tradeoff (because the processes that guarantee consistency eat up latency in form of network roundtrips)
100%, I don't think what we're saying conflicts. There is _always_ a tradeoff between consistency and availability whether you're thinking of PAC or PACELC. PACELC just makes it explicit that this tradeoff exists whether you're partitioned or not.
> every request received by a non-failing node in the system must result in a response
I don't believe that encodes latency
Instead, here's consistency:
> any read operation that begins after a write operation completes must return that value, or the result of a later write operation
"after a write operation completes" feels like where latency kicks in? Because within that space you can play around with completing a write operation to get what you want.