What is it?

In Software Engineering, an architecture pattern is an abstracted description of reusable solutions to designing software systems. It provides a proven template for structuring components and how they interact with each other in the system.