What are “Soft” and “Hard” states ? +
This question has been bugging me for a long time, and I’ve just read this short technical note which is by far the best piece on the distinction between these two types of states.
“Hard-state” protocols mean that in the absence of some event to trigger a protocol response, the protocol’s state will remain unchanged or “hard” for an unbounded time period. This happens in a deterministic manner. Hence hard-state protocols must be reliable, with acknowledgments and retransmissions.
On the other hand, “soft-state” seems a bit difficult to comprehend. In this case, the state is not necessarily consistent, maintained probabilistically, and the existence of the state may or may not be critical to the receiving service. Interested readers should go through the technical note.