Reference architecture
A reference architecture is a generic software architecture template for a family of related systems, capturing the structures and decisions that are common across the family while omitting the details that vary between systems in the family.
Unlike the architecture of a single system, a reference architecture is not meant to be built directly. It is a pattern to be instantiated, adapted to each concrete system’s own requirements and constraints, rather than a finished design.
Nevertheless, a reference architecture is more concrete than a design pattern. A design pattern is a generalized solution to a recurring problem, applicable across many unrelated systems. A reference architecture is scoped to one specific family of systems, and describes their actual components, connectors, and structure. It is closer to a system design than to an abstract, reusable template.