Description
In this course, you will learn :
- About various architectural styles such as client-server, peer-to-peer decentralised architecture, microservices, the fundamentals of data flow in a web application, the various layers involved, concepts such as scalability and high availability, and much more.
- How to choose the right architecture and technology stack to implement our use case.
- Various use cases to help you understand what technology and architecture are best suited to a specific use case when developing a web application.
- About the technology trade-offs involved.
Syllabus :
1. Different Tiers in Software Architecture
- Single-Tier Applications
- Two-Tier Applications
- Three-Tier Applications
- N-Tier Applications
- Different Tiers in Software Architecture Quiz
2. Web Architecture
- What is Web Architecture?
- Client-Server Architecture
- Client
- Types of Clients
- Server
- Communication Between the Client and the Server
- What is a REST API?
- HTTP Push and Pull - Introduction
- HTTP Pull - Polling With AJAX
- HTTP Push
- HTTP Push-Based Technologies
- Client-Side vs. Server-Side Rendering
3. Scalability
- What is Scalability?
- Types of Scalability
- Which Scalability Approach is Right for Your App?
- Primary Bottlenecks That Hurt the Scalability of our Application
- How to Improve and Test the Scalability of our Application?
4. High Availability
- What is High Availability?
- Reasons For System Failures
- Achieving High Availability - Fault Tolerance
- Redundancy
- Replication
- High Availability Clustering
- High Availability Quiz
5. Load Balancing - ( - NEW - )
- Introduction to Load Balancing
- Understanding DNS
- DNS Load Balancing
- Load Balancing Methods
6. Monolith and Microservices
- What is Monolithic Architecture?
- When should you pick a Monolithic Architecture?
- What is Microservice Architecture?
- When should you pick Microservices Architecture?
- Monolith and Microservices– Understanding the Trade-Offs
7. Micro Frontends (- NEW -)
- The need For Micro Frontends
- Micro Frontends Integration
8. Database
- Relational Databases
- When should you pick a relational database?
- NoSQL Databases - Introduction
- Features of NoSQL Databases
- When to pick a NoSQL Database?
- Is NoSQL More Performant Than SQL?
- Polyglot Persistence
- Multi-Model Databases
- Eventual Consistency
- Strong Consistency
- CAP Theorem
- Types of Databases
- Document-Oriented Database
- Graph Database
- Key-Value Database
- Time Series Database
- Wide-Column Database
9. Caching
- Do I Need A Cache?
- Reducing the Application Deployment Costs via Caching
- Caching Strategies
10. Message Queue
- Introduction to Message Queues
- Publish-Subscribe Model
- Point-to-Point Model
- Notification Systems and Real-Time Feeds With Message Queues
- Handling Concurrent Requests With Message Queues
11. Stream Processing
- Data Ingestion
- Different Ways of Ingesting Data and the Challenges Involved
- Data Ingestion Use Cases
- Data Pipelines
- Distributed Data Processing
- Lambda Architecture
- Kappa Architecture
12. More on Architecture
- Event-Driven Architecture
- Webhooks
- Shared-Nothing Architecture
- Hexagonal Architecture
- Peer-to-Peer Architecture
- Decentralized Social Networks
- Federated Architecture
13. Picking the Right Technology
- How to Pick the Right Server-Side Technology?
- Key Things to Remember When Picking the Tech Stack
14. Mobile Apps ( - NEW -)
- Before You Design Your Mobile App
- Responsive Interfaces
- Types of Mobile Apps
- Choosing Between a Native and a Hybrid App
- Progressive Web Apps
- Mobile Backend as a Service
- Epilogue