Architecture terms
Software architecture is the set of decisions that are hard to reverse and expensive to get wrong. This category covers design patterns, structural patterns like microservices and event-driven systems, domain-driven design, scalability principles, and the trade-offs that shape how large systems are built and evolved over years. Good architecture does not happen by accident.
More on Architecture
History
Software architecture emerged as a distinct discipline in the 1990s as systems grew too large for ad-hoc design, with seminal works like the Gang of Four's Design Patterns (1994) and later Fowler's Patterns of Enterprise Application Architecture (2002) establishing shared vocabulary. The rise of object-oriented programming and distributed systems created pressure to document architectural decisions and patterns, leading to frameworks like MVC (mid-1990s) and layered architectures that became industry standards. The 2000s saw domain-driven design (Evans, 2003) shift focus toward modeling business complexity, while the 2010s introduced microservices and event-driven architectures as responses to scaling and deployment challenges at cloud scale. Today's architecture practice balances competing concerns—consistency vs. availability (CAP theorem), monolithic simplicity vs. distributed resilience, and synchronous reliability vs. asynchronous scalability—using patterns like CQRS, event sourcing, and service mesh to manage complexity in cloud-native systems.
Key concepts
- Monolithic Architecture
- Microservices
- Domain-Driven Design (DDD)
- REST (Representational State Transfer)
- API Gateway Pattern
- Event-Driven Architecture
- CQRS (Command Query Responsibility Segregation)
- CAP Theorem
Best references
-
Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans' seminal work establishing DDD principles, bounded contexts, and ubiquitous language—foundational for understanding domain modeling and architectural decisions in the glossary's DDD terms.
-
Building Microservices: Designing Fine-Grained Systems Sam Newman's authoritative guide covering microservices patterns, service boundaries, deployment, and organizational alignment—directly relevant to microservices, API patterns, and service mesh content.
-
The OpenAPI Specification Official specification for documenting REST APIs, widely adopted for standardizing API design and contracts—canonical reference for OpenAPI/Swagger Specification and REST API architecture.
-
Event Sourcing and CQRS Martin Fowler's widely-cited articles on CQRS and Event Sourcing patterns, providing practical guidance on command-query separation and event-driven architectures essential to the glossary.
-
Designing Data-Intensive Applications Martin Kleppmann's comprehensive reference on distributed systems concepts including CAP Theorem, eventual consistency, consensus algorithms, and vector clocks—core to distributed architecture understanding.
-
The Twelve-Factor App Heroku's methodology for building scalable, maintainable cloud applications—canonical reference for modern application architecture practices and deployment patterns.
Typed relationships here
Edges touching a Architecture term. How edges work →
- Bounded Context (DDD) Contains Ubiquitous Language (DDD) 2d
- Bounded Context (DDD) Requires Ubiquitous Language (DDD) 2d
- Bounded Context (DDD) Often seen in Microservices 2d