NSI/IEEE 1991 defines reliability as “the probability of failure-free software operation for a specified period of time in a specified environment”. That sounds pretty much like my definition of availability.


  • Ensure every branch of your code is tested
  • Ensure all exceptions are caught and properly handled
  • Prefer Result<T, E> over Option<T> for error handling