# Finite State Machine

> Model behavior as a finite set of states with explicit legal transitions, so illegal state combinations are unrepresentable.

Record: `algorithms:finite-state-machine`
Kind: algorithm
Canonical: https://banes-lab.com/ontology/algorithms#algorithms-finite-state-machine
Closure: https://banes-lab.com/json/records/algorithms/finite-state-machine/closure

Listed in [Algorithm contracts](https://banes-lab.com/api/records/algorithms.md), after [Consumer Config SSOT](https://banes-lab.com/records/algorithms/consumer-config-ssot.md) and before [Statecharts](https://banes-lab.com/records/algorithms/statecharts.md).

## Domain

- [Architecture](https://banes-lab.com/records/algorithms-domain/architecture.md)

## Tier

- [leaf](https://banes-lab.com/records/vocabulary/domain-tier-leaf.md)

## Principle

- [Finite State Machine](https://banes-lab.com/records/architecture/finite-state-machine.md)

## Composes

- [State Pattern](https://banes-lab.com/records/algorithms/state-pattern.md)
- [Structural Core](https://banes-lab.com/records/algorithms/structural-core.md)

## Composed by

- [Statecharts](https://banes-lab.com/records/algorithms/statecharts.md)

## Math type

- [Graph](https://banes-lab.com/records/reasoning/math-type-graph.md)

## Linked from

- [Behavioral Patterns](https://banes-lab.com/ontology/principles/architecture-category-behavioral-patterns.md)
- [Architecture](https://banes-lab.com/ontology/algorithms/algorithms-domain-architecture.md)
- [Architectural Clusters](https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-clusters.md)
- [The mathematics](https://banes-lab.com/ontology/reasoning/the-mathematics.md)
- [Domain tiers](https://banes-lab.com/ontology/schema/the-vocabulary-domain-tier.md)
