Action
Noun · Development
Definitions
Action in software development refers to a discrete operation or event that triggers a state change or side effect within an application. In the Redux state management pattern, an action is a plain JavaScript object with a type field that describes what happened, dispatched to a reducer function that computes the new state. In GitHub Actions, an action is a reusable unit of CI/CD automation that can be composed into workflows for building, testing, and deploying code. In MVC frameworks, an action typically refers to a controller method that handles a specific HTTP request. The concept appears across many contexts, from user interface events (button clicks, form submissions) to backend processing (queue consumers, webhook handlers). Regardless of the specific framework, actions provide a structured way to represent and handle discrete events in a system.
In plain English: A message that tells your app something happened, so it can update its data accordingly.
Example: "Dispatch a FETCH_USERS_SUCCESS action with the response payload once the API call resolves."
Etymology
- 1970s
- In early GUI systems, 'actions' describe discrete user-initiated operations (clicks, key presses) that trigger program behavior.
- 1994
- The Gang of Four's Command pattern formalizes actions as objects, separating invocation from execution.
- 2014
- Facebook's Flux architecture introduces 'actions' as the standard term for events dispatched to update application state.
- 2020s
- In Redux, GitHub Actions, and server actions (Next.js), the term 'action' is a core abstraction across many programming paradigms.
Origin Story
From Theater to Software: The Command That Does Something
In software, an 'action' is a discrete operation or command that triggers a change in state or behavior. The term has been used across so many contexts that pinning down a single origin is impossible, but its most influential modern usages trace to specific frameworks and platforms. In the Flux architecture, introduced by Facebook in 2014, actions are payloads of information that send data from the application to the store, providing the only way to trigger state changes. Redux, created by Dan Abramov and Andrew Clark in 2015, refined this concept into plain JavaScript objects with a 'type' property. In a different domain, GitHub Actions (launched 2019) adopted the term for reusable workflow units in CI/CD pipelines. The word itself comes from the Latin 'actio,' meaning a doing or performance. In theater, an action is something a character does to achieve an objective, and this metaphor carries into software: an action is an intentional operation with a defined purpose. The versatility of the word is both its strength and its weakness. It appears in UI frameworks, state management, game engines, workflow automation, and server-side architectures, each time with slightly different semantics.
Context: General software engineering, with key formalizations by Facebook Flux (2014) and Redux (2015)
Fun fact: Redux, which popularized the 'action' pattern in frontend development, was created by Dan Abramov partly as a demo for a conference talk about hot reloading and time-travel debugging.