Usability vs Fail-fast dilemma: situation when the system ensures that every its step was successful
How do you call a situation when the system ensures that every its step was successful? For instance, one of the steps was to generate a file. Yet, target location may be occupied and copy fails. System may forget to check or fail. How do you call a system that ensures that every step has succeeded: secure, robust, reliable, or what? Now, the lack of robustness often allows for extreemly useful exploits (especially, for good). For instance, the files are generated and used further. But user can interrupt the process, modify the files for his purposes and restart the system. He protects the files with read-only option so that restarted system did not regenerate them. This exploit happens to be very useful when systems are not robust enough to check the effect of file generation. I find that a robust system, which spends a lot of resources to struggle the misbehavior, is much less useful. How do you call such dilemma?
How about fast failing vs fault tolerant? A fast failing system will frequently check for failures and fail when encountering them. A fault tolerant system will experience them but continue to operate with a possible degradation in performance. Struggline with misbehaviors as you've described it. http://en.wikipedia.org/wiki/Fail-fast http://en.wikipedia.org/wiki/Fault-tolerant_system