How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Patterns & Architecture

Recurring shapes for designing systems and modelling data. 71 in the catalog.

StandardWhat it is
ACID ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties that guarantee database transactions are processed reliably even in the...
Actor Model The Actor Model is a mathematical model of concurrent computation where the fundamental unit of computation is an actor—an entity that processes me...
ArchiMate An open and independent enterprise architecture modeling language to support the description, analysis and visualization of architecture within and...
Architectural Design Patterns Reusable solutions to commonly occurring problems in software architecture that provide templates for designing system structure, component interac...
Architecture Pattern An architecture pattern is a general, reusable solution to a recurring problem in how software systems are structured — describing how components a...
Big O Notation Big O Notation is a mathematical notation for describing how an algorithm's running time or memory use grows as its input grows — an upper bound on...
CQRS CQRS (Command Query Responsibility Segregation) is an architectural pattern that splits a system's write path (commands that change state) from its...
Circuit Breaker The Circuit Breaker is a resilience design pattern that wraps calls to a remote service or API, watches for repeated failures, and "trips" to fail ...
Component Model A component model is an architectural approach that composes software from independent, reusable components with well-defined interfaces, so system...
Consensus Consensus is the problem — and the family of algorithms that solve it — of getting a group of distributed, independently-failing processes to agree...
Convention Over Configuration Convention over configuration is a software design paradigm that reduces the number of decisions a developer must make by supplying sensible defaul...
DSL A domain-specific language (DSL) is a computer language specialized to a particular application domain, trading the generality of a general-purpose...
Data Flow Diagrams A data flow diagram (DFD) is a graphical representation of how data moves through a system, showing the processes that transform it, the stores tha...
Data Modeling Data modeling is the practice of defining the structure, relationships, and constraints of data so that information can be organized, stored, and a...
Data Models A data model is a structured representation of data entities, their attributes, and the relationships between them, defining how information is org...
Data Warehouse Schemas Organizational patterns for structuring data in warehouses, including star schema, snowflake schema, and galaxy schema designs that optimize query ...
Database Normalization Database Normalization is the process of organizing relational database tables to reduce redundancy and improve data integrity, applying a progress...
Database Schema Design The process of defining the structure, organization, and relationships of data in a database system, including tables, columns, constraints, and in...
Dependency Injection A design pattern in which objects receive their dependencies from external sources rather than creating them internally, promoting loose coupling a...
Design Patterns Reusable solutions to commonly occurring problems in software design, providing templates for how to solve problems in various contexts. Organizati...
Dimensional Modeling A data modeling technique used in data warehousing that structures data into fact tables containing measurable metrics and dimension tables contain...
Domain-Driven Design A software development approach that focuses on modeling software to match a domain according to input from domain experts, emphasizing collaborati...
Enterprise Integration Patterns A catalog of messaging-based design patterns for connecting enterprise applications, cataloged by Gregor Hohpe and Bobby Woolf, describing reusable...
Entity Relationship A data-modeling approach that describes a domain as entities, their attributes, and the relationships between them, most often expressed as entity-...
Event Sourcing Event Sourcing is a data-management pattern that persists every change to application state as an immutable, append-only sequence of events, then r...
Event-driven Architecture A software architecture pattern promoting the production, detection, consumption of, and reaction to events. Systems are designed to respond to sta...
Flowcharts A flowchart is a diagram that represents a process, workflow, or algorithm as a sequence of steps connected by directional arrows, using standardiz...
Functional Programming Functional Programming is a programming paradigm that builds software by composing pure functions, avoiding shared mutable state and side effects, ...
Graph Query Language (GQL) An international standard query language for property graph databases, developed by ISO/IEC to provide a declarative way to query and manipulate gr...
Gremlin Gremlin is the graph traversal language of Apache TinkerPop, used to query and manipulate property graphs by describing a path of steps that walk a...
Hypermedia Hypermedia is the REST architectural constraint (often called HATEOAS — Hypermedia As The Engine Of Application State) in which API responses inclu...
Idempotency-Key The Idempotency-Key HTTP header field (IETF draft) lets clients safely retry non-idempotent requests without causing duplicate processing. Servers ...
Integration Patterns Design patterns and best practices for integrating different software systems and applications, including messaging, data transformation, and servi...
Interface Specifications Documentation that defines the contract between different software components, including API endpoints, data formats, protocols, and integration re...
Inversion Of Control Inversion of Control (IoC) is a software design principle in which the framework or runtime, rather than the application's own code, controls the f...
Lakehouse Architecture A data architecture paradigm that combines the best features of data lakes and data warehouses, providing ACID transactions, schema enforcement, an...
MVC MVC (Model-View-Controller) is a software design pattern that separates an application into three interconnected parts — the model that holds data ...
MapReduce MapReduce is a programming model and processing framework for computing over very large datasets in parallel across a distributed cluster, splittin...
Modeling Language A modeling language is a formal notation, either graphical or textual, for expressing the structure, behavior, and constraints of a system accordin...
Modular Monolith An architectural pattern that structures a monolithic application into loosely coupled, well-defined modules with clear boundaries and dependencies...
Monolithic Architecture Monolithic Architecture is a software design approach in which an application is built and deployed as a single, self-contained unit, with its user...
Multi-tier Architecture A software architecture pattern that separates an application into logical layers or tiers, typically presentation, business logic, and data access...
Normalization Normalization is the practice of structuring data so that each fact is stored once and dependencies are made explicit, reducing redundancy and upda...
Object-Oriented Programming Object-Oriented Programming (OOP) is a software design paradigm that structures code around objects — bundles of data (attributes) and the behavior...
Partitioning Partitioning is the practice of dividing a large dataset, table, or system into smaller, independently manageable pieces based on a key such as dat...
Pig Latin Pig Latin is the high-level data-flow language used by Apache Pig to express extract-transform-load and analysis pipelines over large datasets, com...
Process Flow Diagrams Visual representations that illustrate the sequential steps and decision points in a process, showing how inputs are transformed into outputs throu...
Programming Paradigm A programming paradigm is a fundamental style or approach to writing software — such as imperative, object-oriented, functional, or declarative — t...
Raft Raft is a consensus algorithm for managing a replicated log across a cluster of servers, designed to be more understandable than Paxos while provid...
Reactive Programming Reactive Programming is a declarative programming paradigm oriented around asynchronous data streams and the propagation of change, letting systems...
Relational Data Modeling A database design approach that organizes data into tables (relations) with rows and columns, establishing relationships between tables through key...
SOA SOA (Service-Oriented Architecture) is an architectural style in which application functionality is organized into discrete, network-accessible ser...
SPA A Single Page Application (SPA) is a web application that loads a single HTML document and dynamically rewrites the page in the browser using JavaS...
SPARQL SPARQL is the W3C standard query language and protocol for retrieving and manipulating data stored in RDF (Resource Description Framework) format, ...
SQL SQL (Structured Query Language) is the standard programming language for managing and querying relational databases. It provides commands for creat...
Schema Design Schema Design is the practice of defining the structure of data—its objects, fields, types, and relationships—so that databases and APIs represent ...
Schema Evolution Schema Evolution is the practice of changing a data schema over time—adding, removing, or altering fields and types—without breaking the producers ...
Schema Free Schema Free (or schemaless) describes data stores and APIs that do not enforce a fixed structure up front—records can carry different fields from o...
Schema Validation Schema Validation is the practice of checking that a data payload conforms to a declared structure - its types, required fields, formats, and const...
Serverless Patterns A collection of serverless architectures and patterns for building applications on AWS, featuring ready-to-use templates and best practices for Lam...
Service Mesh Interface (SMI) The Service Mesh Interface was a CNCF specification defining a standard set of Kubernetes custom resources for traffic policy, telemetry and traffi...
Service Oriented Architecture An architectural pattern where software components provide services to other components through a communication protocol over a network. Services a...
Services Patterns Design patterns and architectural approaches for building microservices and service-oriented applications, covering how services are decomposed, co...
Sharding Sharding is a database and system design technique that horizontally partitions a dataset across multiple nodes, so that each shard holds a subset ...
Software Design Architectural Patterns Reusable solutions and best practices for organizing software system architecture, including patterns like MVC, Microservices, Layered Architecture...
Software Design Patterns Reusable solutions to commonly occurring problems in software design, including creational, structural, and behavioral patterns that help developer...
TOGAF TOGAF is the most widely adopted enterprise architecture framework, maintained by The Open Group since 1995 and now in its 10th Edition. It is a me...
UML UML (Unified Modeling Language) is a standardized, general-purpose visual modeling language maintained by the Object Management Group for specifyin...
Versioning Protocols Versioning protocols are the standards and conventions for signaling change in APIs, software interfaces, and data formats — such as Semantic Versi...
Write Ahead Log A Write-Ahead Log (WAL) is a standard technique in database systems where changes are first recorded to a sequential log file before being applied ...
openCypher openCypher is an open-source project that provides a standardized graph query language originally developed by Neo4j for querying property graphs. ...
← All standards