This document provides an overview of state machines and their use in applications. A state machine defines the process flow of an application at runtime by converting it into a series of states. It reads a series of inputs and switches to different states accordingly. Examples are provided of state machines for fetching data from an API and for a washer/dryer machine. Key components of a state machine include states, events/inputs, and transitions between states. States represent the status of the machine, events are the inputs that trigger transitions, and transitions move the machine from one state to another. Finite state machines have a finite number of states and can only be in one state at a time. Moore and Mealy machines are two types that differ in