This course is a 101 on web application & software architecture. It walks you step by step through different components & concepts involved when designing the architecture of a web application. We'll learn about various architectural styles such as the client-server, peer to peer decentralized architecture, microservices, the fundamentals of data flow in a web application, different layers involved, concepts like scalability, high availability and much more. In this course, we'll also go through the techniques of picking the right architecture and the technology stack to implement our use case. I'll walk you through different use cases which will help you gain an insight into what technology & architecture fits best for a certain use case when writing a web application. You’ll come to understand the technology trade-offs involved.