Failure semantics

In distributed computing, failure semantics is used to describe and classify errors that distributed systems can experience.

Types of errors
A list of types of errors that can occur:
 * An omission error is when one or more responses fails.
 * A crash error is when nothing happens. A crash is a special case of omission when all responses fail.
 * A Timing error is when one or more responses arrive outside the time interval specified. Timing errors can be early or late. An omission error is a timing error when a response has infinite timing error.
 * An arbitrary error is any error, (i.e. a wrong value or a timing error).
 * When a client uses a server it can cope with different type errors from the server.
 * If it can manage a crash at the server it is said to assume the server to have crash failure semantics.
 * If it can manage a service omission it is said to assume the server to have omission failure semantics.
 * Failure semantics are the type of errors that are expected to appear.
 * Should another type of error appear it will lead to a service failure because it cannot be managed.