# Fault Prevention Tactic

**In short:** Fault prevention is one of three groups of availability tactics. Its tactics stop faults from happening or from turning into failures, instead of reacting afterward.

## Explanation

Availability tactics fall into three groups: detecting faults, recovering from faults, and preventing faults. See the articles Fault Detection Tactic and Fault Recovery Tactic for the other two. Fault prevention aims to act before a fault harms users.

Five tactics belong to this group.

**Removal from service.** The team temporarily puts a component into an out-of-service state. The goal is to head off failures that might otherwise happen.

**Transactions.** Related state updates are bundled together. Messages exchanged between components then stay atomic, consistent, isolated, and durable. These four properties are known as ACID. Jim Gray named atomicity, consistency, and durability. The acronym came later, in 1983. IBM's Information Management System supported ACID transactions as early as 1973.

**Predictive model.** The system monitors the state of a process to check that it works properly. If conditions point to likely future faults, it takes corrective action.

**Exception prevention.** The system stops exceptions from occurring in the first place. One way is to mask a fault.

**Increasing the competence set.** The team designs a component to handle more fault cases as part of its normal operation.

A 2009 SEI report updated the catalog of availability tactics. The categorization structure itself stayed stable.

## Example

A team runs an order service. It bundles "reserve stock" and "charge payment" into one transaction, so a half-finished order never remains. It also watches the service's state and takes the service out of rotation for a short restart when the state looks unhealthy. Finally, it extends the service to handle one more kind of bad input as normal work, so that input no longer counts as a fault.

Where fault prevention sits among availability tactics.

```mermaid
mindmap
  root((Availability tactics))
    Detect faults
    Recover from faults
    Prevent faults
      Removal from service
      Transactions
      Predictive model
      Exception prevention
      Increase competence set
```

## Checks

- The document states which prevention tactics (removal from service, transactions, predictive models, exception prevention, increasing the competence set) the system uses.
- Where state updates between components must be atomic, consistent, isolated, and durable, the document says transactions are used.
- Where process state is monitored, the document says what conditions trigger corrective action.

## Related

- [Availability Tactic](https://arc.fuet.ch/concepts/tactics/availability-tactics.md)
- [Fault Detection Tactic](https://arc.fuet.ch/concepts/tactics/availability-tactics-fault-detection.md)
- [Fault Recovery Tactic](https://arc.fuet.ch/concepts/tactics/availability-tactics-fault-recovery.md)
- [Availability](https://arc.fuet.ch/concepts/quality-attributes/availability.md)
- [Fault](https://arc.fuet.ch/concepts/quality-attributes/fault.md)
- [Exception Handling Tactic](https://arc.fuet.ch/concepts/tactics/exception-handling.md)
- [Architectural Tactic](https://arc.fuet.ch/concepts/tactics/architectural-tactic.md)
- [Availability Tactic Categories](https://arc.fuet.ch/concepts/tactics/availability-responses.md)

## Sources

- [3.4 Design Concepts to Support Availability | Making Design Decisions | InformIT](https://www.informit.com/articles/article.aspx?p=3197432&seqNum=4) — informit.com, accessed 2026-11-08
- [Realizing and Refining Architectural Tactics: Availability | CMU Software Engineering Institute](https://www.sei.cmu.edu/library/realizing-and-refining-architectural-tactics-availability/) — sei.cmu.edu, accessed 2026-11-08
- [ACID - Wikipedia](https://en.wikipedia.org/wiki/ACID) — en.wikipedia.org, accessed 2026-11-09
