Her ikisi de bir uygulamanın davranışının tutarlılığını tanımlar, ancak "sağlamlık" bir uygulamanın girdisine yanıtını açıklarken "hataya dayanıklılık" bir uygulamanın ortamına yanıtını açıklar .
Bir uygulama tutarsız verilerle tutarlı bir şekilde çalışabiliyorsa sağlamdır. Örneğin: çeşitli yanlış yazımlarla adresleri çeşitli biçimlerde ayrıştırabildiğinde ve faydalı bir konum döndürdüğünde bir haritalar uygulaması sağlamdır. Bir müzik çalar, hatalı biçimlendirilmiş bir çerçeveyle karşılaştıktan sonra MP3'ün kodunu çözmeye devam edebildiğinde sağlamdır. Bir görüntü düzenleyici, tanımayabileceği gömülü EXIF meta verileri içeren bir görüntüyü değiştirebildiğinde sağlamdır - özellikle de EXIF verilerini bozmadan görüntüde değişiklik yapabiliyorsa.
Bir uygulama tutarsız bir ortamda tutarlı bir şekilde çalıştığında hataya dayanıklıdır. Bir veritabanı uygulaması, birincil kullanılabilir olmadığında alternatif bir kırığa erişebiliyorsa hataya dayanıklıdır. Web uygulaması, bir API ana makinesine erişilemese bile önbellekten gelen istekleri işlemeye devam edebildiğinde hataya dayanıklıdır. Depolama altsistemi, bir disk üyesi çevrimdışı olduğunda pariteden hesaplanan sonuçları döndürebildiğinde hataya dayanıklıdır.
Her iki durumda da, uygulamanın bir sorunla karşılaşsa bile kararlı kalması, düzgün davranması, veri bütünlüğünü koruması ve faydalı sonuçlar vermesi beklenir. Ancak, sağlamlığı değerlendirirken, verileri içeren kriterleri, hata toleransını değerlendirirken, çalışma süresini içeren kriterleri bulacaksınız.
Biri mutlaka diğerine yol açmaz. Bir mobil ses tanıma uygulaması çok sağlam olabilir ve çok çeşitli arka plan gürültüsü olan çeşitli bölgesel aksanlarda konuşmayı tutarlı bir şekilde tanımak için inanılmaz bir yetenek sağlar. Ancak hızlı hücresel veri bağlantısı olmadan işe yaramazsa, hataya dayanıklı değildir. Benzer şekilde, bir web yayınlama uygulaması son derece hataya dayanıklı olabilir, her düzeyde birden fazla fazlalık vardır, tüm veri merkezlerini başarısız olmadan kaybedebilir, ancak bir kullanıcı tablosunu düşürdüğünde ve birisinin soyadında bir kesme işareti ile ilk kez kaydolduğunda çökebilir , hiç de sağlam değil.
Ayrımı açıklamaya yardımcı olacak bilimsel literatür arıyorsanız, genel olarak yazılımdan ziyade yazılımdan yararlanan belirli alanlara bakabilirsiniz. Dağıtılmış uygulama araştırmaları, hataya dayanıklılık kriterleri için verimli bir zemin olabilir ve Google, ilgili olabilecek bazı araştırmalarını yayınlamıştır. Veri modelleme araştırması büyük olasılıkla sağlamlık sorunlarına yöneliktir, çünkü bilim adamları özellikle tekrarlanabilir sonuçlar veren sağlamlığın özellikleriyle ilgilenmektedir. Muhtemelen iklim modellemesi, RF yayılım modellemesi veya genom dizilemesinde olduğu gibi, yararlı olabilecek istatistiksel uygulamaları açıklayan kağıtlar bulabilirsiniz. Ayrıca kontrol sistemleri gibi şeylerde "sağlam tasarım" ı tartışan mühendisler de bulacaksınız.
Google Dosya Sistemi tanıtım belgesi, genellikle bileşen hatalarının rutin olduğu ve dolayısıyla uygulamanın bunlara uyum sağlaması gerektiği varsayımlarını içeren hata toleransı sorunlarına yaklaşımlarını açıklar:
Rutgers'daki bir sınıf için bu proje, "hata toleransı" nın "bileşen-başarısızlık" yönelimli bir tanımını desteklemektedir:
Araştırdığınız alana bağlı olarak "sağlam XYZ modellemesi" üzerine çok sayıda makale bulunmaktadır. Birçoğu özette "sağlam" kriterlerini açıklayacak ve her şeyin modelin girdi ile nasıl başa çıktığı ile ilgili olduğunu göreceksiniz.
Bir NASA iklim bilim insanından alınan bu özet, sağlamlığı iklim modellerini değerlendirmek için bir kriter olarak açıklamaktadır:
Bir MIT araştırmacısının bu makalesi, hataya dayanıklılık ve sağlamlığın çakıştığı bir etki alanı olan kablosuz protokol uygulamalarını inceler, ancak yazarlar uygulamaları, protokolleri ve algoritmaları tanımlamak için "sağlam" kullanırken topolojiye referansta "hata toleransı" kullanırlar ve bileşenler: