Architectural pattern


An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk. Some architectural patterns have been implemented within software frameworks.
The use of the word "pattern" in the software industry was influenced by similar concepts in expressed in traditional architecture, such as Christopher Alexander's A Pattern Language which discussed the practice in terms of establishing a pattern lexicon, prompting the practitioners of computer science to contemplate their own design lexicon.
Usage of this metaphor within the software engineering profession become commonplace after the publication of Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides—now commonly known as the "Gang of Four"—coincident with the early years of the public Internet, marking the onset of complex software systems "eating the world" and the corresponding need to codify the rapidly sprawling world of software development at the deepest possible level, while remaining flexible and adaptive.
Architectural patterns are similar to software design patterns but have a broader scope.

Definition

Even though an architectural pattern conveys an image of a system, it is not an architecture. An architectural pattern is a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and share the related characteristics. Patterns are often defined as "strictly described and commonly available".

Architectural style

Following traditional building architecture, a 'software architectural style' is a specific method of construction, characterized by the features that make it notable.
Some treat architectural patterns and architectural styles as the same, some treat styles as specializations of patterns. What they have in common is both patterns and styles are idioms for architects to use, they "provide a common language" or "vocabulary" with which to describe classes of systems.
The main difference is that a pattern can be seen as a solution to a problem, while a style is more general and does not require a problem to solve for its appearance.

Examples

Here is a list of architecture patterns, and corresponding software design patterns and solution patterns.
Sub-domain areaArchitecture patternSoftware design patternsSolution patternsRelated patterns
Data integration/SOA
  • ETL
  • Change data capture
  • Near real-time ETL
  • Batch ETL
  • Data discovery
  • Error handling
  • Job scheduling
  • Data validation
  • Slowly changing dimensions load
  • EAI
  • Master data hub
  • Operational data store
  • Data mart
  • Data warehouse
  • Data integration/SOA
  • MFT
  • Data integration/SOA
  • EAI/ESB
  • Publish/subscribe
  • Request/reply
  • Message exchange patterns
  • One-way
  • Synchronous request/response
  • Basic callback
  • Claim check
  • SOA
  • Data architecture
  • Transaction data stores
  • Master data store
  • Operational data store
  • Data mart
  • Data warehouse
  • Custom applications databases
  • Packaged application databases
  • ETL
  • EAI
  • SOA
  • Analytics and business intelligence
  • Transactional reporting
  • Operational analytics
  • Business analytics
  • Predictive analytics
  • Prescriptive analytics
  • Streaming analytics
  • Data science and advanced analytics
  • NLP
  • Transactional reporting data access
  • Operational reporting data access
  • Analytical reporting data access
  • Analytical dashboard data access
  • Operational dashboard data access
  • Data mining
  • Real-time dashboards
  • In-memory analytics
  • Statistical analysis
  • Predictive analytics
  • ETL
  • EAI
  • TDS
  • Operational data store
  • Data mart
  • Master data management
  • Master data hub
  • Master data replication
  • Master data services
  • Master data synchronization
  • Change data capture
  • EAI
  • STD
  • Data modeling
  • Dimensional data modeling
  • E-R data modeling
  • Modeling standards
  • Naming conventions
  • Artificial intelligence
  • Decision management
  • Speech recognition
  • Text analytics and NLP
  • Natural language generation
  • Classic machine learning
  • Deep learning
  • Robotic process automation
  • Image and video analysis
  • Some additional examples of architectural patterns: