Software Architecture Pattern refers to a reusable, proven solution to a recurring problem at the system level, addressing concerns related to the overall structure, component interactions, and quality attributes of the system.
Software architecture patterns operate at a higher level of abstraction than software design patterns, solving broader system-level challenges.
While these patterns typically affect system-level concerns, the distinction between architectural patterns and architectural styles can sometimes be blurry.
Architecture styles typically include a vocabulary of component and connector types, as well as semantic models for interpreting the system's properties.
These styles represent the most coarse-grained level of system organization.