A software strategy that allows an application to continue functioning at reduced capacity when some components break.