Pattern Glossary

Browse 60 pattern terms defined in plain English, from the cultural dictionary of computing.

60 Pattern Terms

ABAC
Attribute-Based Access Control -- an authorization model where access decisions are based on attributes of the user (department, clearance), resource...
Adapter Pattern
A structural design pattern that makes incompatible interfaces work together by wrapping one interface in a class that implements the expected interface. Like...
Aggregate
A cluster of domain objects (entities and value objects) that are treated as a single unit for data changes. The aggregate root is the only entry point —...
Anti-Corruption Layer
A translation layer between two systems (or bounded contexts) that prevents one system's model from corrupting another's. Translates between different domain...
API Composition
A pattern where a service (or API gateway) queries multiple microservices and combines the results into a single response. Replaces cross-service database...
API Gateway Pattern
A pattern where a single entry point (the gateway) handles cross-cutting concerns for all backend services: authentication, rate limiting, request routing,...
Backend for Frontend
A pattern where each frontend client (web, mobile, TV) has its own dedicated backend service that aggregates, transforms, and tailors API responses for that...
Backoff
A retry strategy where the delay between attempts increases (typically exponentially) after each failure. Prevents overwhelming a recovering service with a...
Backpressure
A flow control mechanism where a slow consumer signals an upstream producer to slow down, preventing buffer overflow and memory exhaustion. Without...
Builder Pattern
A creational design pattern that constructs complex objects step by step through a fluent API, separating construction from representation. Especially useful...
Circuit Breaker
A design pattern that prevents an application from repeatedly trying to execute an operation that's likely to fail, giving the failing service time to recover....
Clean Architecture
An architectural pattern (by Robert C. Martin) with concentric layers where dependencies point inward: Entities (business rules) → Use Cases (application...
Connection Pooling
Maintaining a cache of reusable database connections instead of opening a new connection for each request. Dramatically reduces latency (TCP handshakes, TLS...
Consumer Group
A set of consumers that cooperatively consume a Kafka topic, with each partition assigned to exactly one consumer in the group. Adding consumers (up to the...
CQRS
Command Query Responsibility Segregation — separating the read model (queries/views) from the write model (commands/mutations). Commands validate and modify...
CQRS
Command Query Responsibility Segregation — separating read and write operations into different models. Writes go to one optimized store; reads come from...
CTE
Common Table Expression — a named temporary result set defined within a SQL statement using the WITH clause. Makes complex queries readable by breaking them...
Dead Letter Queue
A special queue where messages that can't be processed (after exceeding retry limits) are stored for later analysis instead of being discarded. Prevents poison...
Debounce
A technique that delays execution of a function until a specified period of inactivity has passed. Each new trigger resets the timer. Commonly used for...
Event-Driven Architecture
A design paradigm where the flow of the program is determined by events — user actions, sensor outputs, messages from other services. Components publish events...
Event Sourcing
An architectural pattern where state changes are stored as an immutable sequence of events rather than just the current state. The current state is derived by...
Factory Pattern
The Factory pattern is a creational design pattern that delegates object creation to a dedicated method or class rather than using direct constructors. The...
Feature Toggle
A runtime configuration switch that enables or disables a feature without deploying new code. Categories: release toggles (gradual rollout), experiment toggles...
Finite State Machine
A computational model with a finite number of states, transitions between them triggered by inputs, and defined start/accept states. Used to model parsers, UI...
GraphQL Fragment
A reusable piece of a GraphQL query that defines a set of fields on a specific type. Fragments eliminate field duplication across queries and mutations, and in...
Hexagonal Architecture
An architectural pattern (also called Ports and Adapters) where business logic is isolated at the center, communicating with the outside world through defined...
Idempotency Key
A unique token sent with an API request to ensure that retrying the same operation produces the same result without side effects. Critical for payment APIs and...
Idempotent Pipeline
A data pipeline that produces the same output regardless of how many times it's run with the same input. Achieved through techniques like UPSERT/MERGE,...
Immutable Deploy
A deployment model where servers are never updated in place — instead, a new machine image (AMI, Docker image) is built with the new code and replaces the old...
Inbox Pattern
The consumer-side counterpart of the outbox pattern: incoming messages are first stored in an inbox table (with deduplication by message ID), then processed....
Init Container
A specialized container in a Kubernetes pod that runs to completion before the main application containers start. Used for setup tasks like waiting for a...
Islands Architecture
A web architecture pattern where most of the page is static HTML, with small 'islands' of interactive components that are independently hydrated. Reduces...
Leader Election
A coordination pattern in distributed systems where nodes agree on a single leader responsible for a specific task (e.g., writes, scheduling). If the leader...
Load Shedding
A resilience strategy where a system intentionally drops or rejects excess requests during overload to protect core functionality. Unlike rate limiting...
Long Polling
A technique where the client sends an HTTP request and the server holds it open until new data is available (or a timeout expires), then responds. The client...
Medallion Architecture
A data organization pattern with three layers: Bronze (raw ingestion, no transformation), Silver (cleaned, deduplicated, conformed), and Gold (aggregated,...
Observer Pattern
The Observer pattern is a behavioral design pattern where an object (the subject) maintains a list of dependents (observers) and notifies them automatically...
Optimistic Update
A UI pattern where the interface immediately reflects a state change before the server confirms it, rolling back if the server request fails. Makes the app...
Outbox Pattern
A pattern for reliable event publishing in microservices: instead of directly publishing to a message broker (which can fail independently of the database),...
Partial Application
Fixing some arguments of a function to produce a new function with fewer parameters. Unlike currying (which transforms f(a,b,c) into f(a)(b)(c)), partial...
Pub/Sub
Pub/Sub (Publish/Subscribe) is a messaging pattern where senders (publishers) emit events to named topics without knowing who receives them, and receivers...
RBAC
Role-Based Access Control -- an authorization model where permissions are assigned to roles (admin, editor, viewer), and users are assigned roles. Simplifies...
Regex
Regular Expression -- a pattern language for matching, searching, and manipulating text. Supported by virtually every programming language and tool (grep, sed,...
Repository Pattern
A design pattern that mediates between domain logic and data mapping layers, providing a collection-like interface for accessing domain objects. The repository...
Saga Pattern
A pattern for managing distributed transactions across multiple services by breaking them into a sequence of local transactions, each with a compensating...
Selector
A pattern used to match and target elements — in CSS for styling, in Objective-C for method dispatch, or in state management libraries for deriving computed...
Sidecar
A helper container deployed alongside the main application container in the same pod, providing supporting functionality like logging, proxying, or service...
Sliding Window
An algorithmic technique that maintains a window (subarray/substring) that slides through data, expanding or contracting to find optimal solutions. Fixed-size...
Slowly Changing Dimension
A data warehousing technique for tracking how dimension attributes change over time. Type 1 overwrites the old value, Type 2 adds a new row with version dates...
State Machine
A computational model where a system exists in exactly one of a finite set of states at any time, transitioning between states in response to events according...
Strangler Fig Pattern
A migration strategy where a new system is built incrementally around an existing legacy system, gradually replacing its functionality until the old system can...
Strategy Pattern
A behavioral design pattern that encapsulates interchangeable algorithms behind a common interface, letting the client switch strategies at runtime. Eliminates...
Thread Pool
A collection of pre-created worker threads that process tasks from a shared queue. Eliminates the overhead of creating/destroying threads per request (which...
Throttle
A technique that limits function execution to at most once per specified time interval, regardless of how many times it's triggered. Unlike debounce (which...
Tombstone
A marker indicating that a record has been deleted, used instead of physically removing data. Common in distributed databases (Cassandra, DynamoDB) and...
Upsert
An atomic operation that inserts a row if it doesn't exist or updates it if it does, based on a unique key. Eliminates race conditions between separate SELECT...
Watermark
A mechanism in stream processing that tracks progress in event time, declaring that no more events with timestamps before the watermark will arrive. Enables...
Webhook vs. Polling
Two approaches to getting updates: polling (repeatedly asking 'anything new?') vs. webhooks (getting called when something happens). Polling is simpler;...
Windowing
Dividing an infinite data stream into finite chunks for aggregation. Tumbling windows are fixed, non-overlapping intervals (every 5 minutes). Sliding windows...
Write-Ahead Log
A durability technique where changes are first written to an append-only log before being applied to the main data structure. If the system crashes mid-write,...

Related Topics