A software architecture pattern that separates an application into logical layers or tiers, typically presentation, business logic, and data access layers, to improve modularity, scalability, and maintainability. It is used across a range of industries and technical contexts to improve efficiency and outcomes.