# Integrability, Deployability, Testability and Reliability Tactics

**In short:** Tactics are design decisions grouped by the quality goal they serve. This article covers a few: heartbeat for fault detection, plus rollback, blue/green deployment and feature toggles for safe releases.

## Explanation

An architectural tactic is a design decision that influences how a system responds in terms of a quality attribute. Tactics are grouped by the goal they address. For robustness and reliability, the goal is to prevent, mask or repair faults. See Architectural Tactic for the general concept.

The verified facts cover three areas.

**Integrability.** Integrability is how easily a system fits with other systems. Patterns and tactics are the usual mechanisms teams use to meet integrability requirements.

**Reliability.** Heartbeat is a fault-detection tactic. A monitor and a monitored process send each other periodic messages. These messages show that the process is still alive. See Heartbeat for more detail.

**Deployability.** Deployability design must support rollback and feature toggles. Architects therefore decide early on mechanisms such as toggles and backward-compatible interfaces.

- *Rollback.* A defect may appear after a release. Teams then typically return to an earlier version while they fix the defect.
- *Blue/green deployment.* This is one way to scale a rollout. The team starts new instances. Then it switches traffic to them by changing the DNS or the discovery service so that it points to the new version.
- *Feature toggles.* This is a set of patterns for delivering new functionality quickly but safely. Release toggles let unfinished, untested code paths ship to production as latent code. This is a way to manage the deployed system.

## Example

A team releases a new version of a service. It starts new instances beside the old ones. Then it changes the discovery service so traffic goes to the new instances. The new checkout code ships switched off behind a release toggle. If a defect shows up, the team rolls back to the previous version while it fixes the problem. A monitor also exchanges periodic heartbeat messages with the service to see that it is alive.

## Trade-offs

Rollback and feature toggles only work if the design supports them. Backward-compatible interfaces and toggle mechanisms must be decided early. Release toggles also ship unfinished, untested code to production as latent code.



## Checks

- The architecture documents which mechanisms, such as feature toggles and backward-compatible interfaces, support rollback.
- The document states how a failed release is rolled back to an earlier version.
- Fault-detection tactics such as heartbeat are named for the monitored processes.
- Tactics are listed under the quality goal they address.

## Related

- [Architectural Tactic](https://arc.fuet.ch/concepts/tactics/architectural-tactic.md)
- [Heartbeat](https://arc.fuet.ch/concepts/tactics/heartbeat.md)
- [Fault Detection Tactic](https://arc.fuet.ch/concepts/tactics/availability-tactics-fault-detection.md)
- [Reliability](https://arc.fuet.ch/concepts/quality-attributes/reliability.md)
- [Testability](https://arc.fuet.ch/concepts/quality-attributes/testability.md)
- [Modifiability Tactics in SOA](https://arc.fuet.ch/concepts/tactics/modifiability-tactics-in-soa.md)
- [Choosing and Applying Tactics](https://arc.fuet.ch/concepts/tactics/choosing-and-applying-tactics.md)
- [Integration](https://arc.fuet.ch/concepts/integration/integration.md)

## Sources

- [Tactics and Patterns for Software Robustness | CMU Software Engineering Institute](https://www.sei.cmu.edu/blog/tactics-and-patterns-for-software-robustness/) — sei.cmu.edu, accessed 2026-11-09
- [Two Categories of Architecture Patterns for Deployability | CMU Software Engineering Institute](https://www.sei.cmu.edu/blog/two-categories-of-architecture-patterns-for-deployability/) — sei.cmu.edu, accessed 2026-11-09
- [Feature Toggles (aka Feature Flags)](https://martinfowler.com/articles/feature-toggles.html) — martinfowler.com, accessed 2026-11-08
- [Integrability | CMU Software Engineering Institute](https://www.sei.cmu.edu/library/integrability/) — sei.cmu.edu, accessed 2026-11-09
