This document provides an overview of software architecture fundamentals and patterns, with a focus on architectures for scalable systems. It discusses key quality attributes for architecture like performance, reliability, and scalability. Common patterns for scalable systems are described, including load balancing, map-reduce, and caching. The document also provides a detailed look at architectures used at Facebook, including the architectures for Facebook's website, chat service, and handling of big data. Key aspects of each system are summarized, including the technologies and design principles used.