Patterns & Architecture
Recurring shapes for designing systems and modelling data. 71 in the catalog.
| Standard | What 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. ... |