Web Application and Software Architecture 101

Web Application and Software Architecture 101

Master the Fundamentals of Web Architecture and Large Scale Systems

Course Contents (What You’ll Learn)

1. Introduction
About this Course (preview)
Significance of Software Architecture (preview)

2. Different Tiers in Software Architecture
Introduction
Single-Tier Applications
Two-Tier Applications
Three-Tier Applications
N-Tier Applications
Quiz

3. Web Architecture
What Is Web Architecture?
Client-Server Architecture
Client
Types Of Client
Server
Communication Between the Client and the Server
Web Architecture Quiz – Part 1
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
Web Architecture Quiz – Part 2

4. Scalability
What Is Scalability? (preview)
Types Of Scalability
Which Scalability Approach Is Right For Our App?
Primary Bottlenecks that Hurt the Scalability Of Our Application
How To Improve and Test the Scalability Of Our Application?
Scalability Quiz

5. High Availability
What Is High Availability?
Reasons For System Failures
Achieving High Availability – Fault Tolerance
Redundancy
Replication
High Availability Clustering
High Availability Quiz

6. Load Balancing
Introduction to Load Balancing
Understanding DNS – Part 1
Understanding DNS – Part 2
DNS Load Balancing
Load Balancing Methods
Load Balancing Quiz

7. Monolith & Microservices
What Is A Monolithic Architecture? (Updated)
When Should You Pick a Monolithic Architecture?
What Is A Microservice Architecture?
When Should You Pick A Microservices Architecture?
Monolith and Microservices – Understanding The Trade-Offs – Part 1
Monolith and Microservices – Understanding The Trade-Offs – Part 2 (preview)
The Big Ball of Mud (Recently Added)
Layered Architecture (Recently Added)
Modular Monolithic Architecture – Part 1 (preview)
Modular Monolithic Architecture – Part 2 – Inter Module Communication (Recently Added)
Hexagonal Architecture (Updated)
Event-Driven Architecture – Part 1 – (Blocking, Non-Blocking) (Updated)
Event-Driven Architecture – Part 2 – (Understanding Events) (Updated)
Event-Driven Architecture – Part 3 – (Real-world Use Case) (Recently Added)
Summary
Monolith and Microservices Quiz

8. Micro Frontends
Introduction to Micro Frontends
The Need For Micro Frontends
Micro Frontends Integration

9. Database
Introduction & Types of Data
Relational Database
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?
Database Quiz – Part 1
Polyglot Persistence
Multi-Model Databases
Eventual Consistency
Strong Consistency
CAP Theorem
Database Quiz – Part 2
Types of Databases
Document Oriented Database
Graph Database (preview)
Key Value Database
Time Series Database
Wide-Column, Column-Oriented and Column-Family Databases – Part 1 (preview)
Wide-Column, Column-Oriented and Column-Family Databases – Part 2 (Updated)
Database Quiz – Part 3

10. Caching
Introduction
Do I Need A Cache?
Reducing the Application Deployment Costs Via Caching
Caching Strategies
Caching Quiz

11. Message Queue
Introduction to Message Queues
Publish Subscribe Model
Point to Point Model
Notification Systems & Real-time Feeds with Message Queues
Handling Concurrent Requests With Message Queues
Message Queue Quiz

12. Stream Processing
Introduction
Data Ingestion
Different Ways Of Ingesting Data and the Challenges Involved
Data Ingestion Use Cases
Data Pipelines
Distributed Data Processing
Lambda Architecture
Kappa Architecture
Stream Processing Quiz

13. More On Architecture
Web Hooks
Shared Nothing Architecture
More On Architecture Quiz – Part 1
Peer to Peer Architecture – Part 1
Peer to Peer Architecture – Part 2
Decentralized Social Networks
Federated Architecture
More On Architecture Quiz – Part 2

14. Picking the Right Technology
How to Pick the Right Server-Side Technology?
Key Things To Remember When Picking the Tech Stack
Conclusion

15. Case Studies
A Web-based Mapping Service Like Google Maps
A Baseball Game Ticket Booking Web Portal

16. Mobile Apps
Introduction
Before You Design Your Mobile App
Responsive Interfaces
Types Of Mobile Apps – Part 1
Types Of Mobile Apps – Part 2
Choosing Between A Native & A Hybrid App
Progressive Web Apps
Mobile Backend as a Service
Zero to Software Architect Learning Track
Epilogue
Change log

You’ll have 2 years of access to the course content. Please read the FAQs below before making the purchase.

Who is this Course for?

This course is meant for software developers, aspiring architects, product managers, product owners, engineering managers, IT consultants and anyone looking to get a firm grasp on the fundamentals of web and software architecture. 

If you are a beginner just starting your career in software development, this course will strengthen your fundamentals in the domain. Designing software is like fitting Lego blocks together. With this course, you’ll develop an insight into how to fit them together and build cool stuff.

This course, along with the Zero to Software Architect learning track, will help you with the software engineering interviews, especially for the full-stack developer positions. By the end of the course, you’ll have a comprehensive insight into web application architecture. 

If you have a startup idea and you are asking yourself, how do I implement my app? What technologies do I use? Where do I start? This course will help you kickstart your entrepreneurial journey.

Will this Course be Helpful In My Career Growth?

This course is the fastest way possible to master the fundamentals of web architecture. Knowing software architecture gives us an edge as a developer or in any role that entails decision-making. 

When implementing new features in our application, when designing new modules from the bare bones or when trying to scale our service, we can make better decisions by applying our architecture knowledge, saving ourselves or our employer a ton of money. This skill will make you stand out amongst your peers.

Most internet companies today have an essential software design round in their interviews, regardless of whether you are an absolute beginner or someone with years of industry experience. They want you to be an individual contributor. They want you to take ownership of your work and be capable of designing and writing software from the bare bones all by yourself, without relying on anyone for assistance.

The Zero to Software Architect Learning track (this course included) prepares you for just that and more.

As opposed to going through tons of articles, videos, books and whitepapers, you’ll find all the needed concepts in this learning track which will save you months, if not years, of your time.  

I’ve spent a decade developing and managing distributed systems for the big guns in the industry and I’ve put that experience in the content. 

Investing in this course will significantly increase your knowledge in the domain, subsequently increasing your pay scale. I wish I had a similar learning product in the initial years of my career.

Are There Any Prerequisites to this Course? Do I Need to Have Coding Knowledge to Understand this Course?

There are no prerequisites to taking this course. Also, you do not need any coding knowledge for this course. The course provides a thorough discussion on architectural concepts with the help of several illustrations to help you understand the concepts better. It holds good for even those who are in any management role like being a product manager/owner making key technology decisions.

Why is this Course Text-based?

My courses are intentionally text-based. The text format of the course enables you to learn faster than the videos. Learning through reading is way faster than sitting through hours of videos. It is easy to take notes—no pausing the videos to take notes or screenshots of diagrams. You can always go back to specific topics immediately when you need them.

Also, my courses are frequently updated. New information is continually added. It is easy for me to update the text-based content as opposed to re-recording a video every time a tiny update needs to be made. Imagine that. It would be killing.

How Long Do I Have Access to the Course Content?

You will have two years of access to the course content from the date of purchase. 

Why Aren’t You Offering Lifetime Access?

I would be happy to but cannot primarily due to two reasons:

1. I have significant recurring monthly expenses in form of platform fees, hosting charges, marketing, international tax compliance and other maintenance costs. Offering lifetime access would significantly spike the price of the courses. In order to keep the content affordable, I had to time restrict access to the platform.

2. The content of my courses is continually updated besides the new content that is added. The software design and development domain continues to evolve and as it evolves the courses get updated accordingly. With my courses, you’ll stay on top of the latest developments in the domain. And, as you might have figured this demands continual time investment 🙂 

I Have a Question. How Can I Get in Touch?

You can send in your queries at [email protected] You can also send me a message on LinkedIn here.

Course Author

Hello there, I am Shivang. I have industry experience of more than ten years designing and developing scalable web systems, right from idea to production. I’ve designed, developed, and maintained code, as well as worked in the production support for systems receiving millions of hits every single day. 

I’ve worked on large-scale web services for some of the industry giants in several domains, including E-commerce, Fintech, Telecom and Travel & Hospitality. My last job was at HP as a full-stack developer in their Technical Solutions – R&D team.

As an independent consultant, I’ve helped businesses build scalable services with fitting software design and technology. This included helping them improve their development processes resulting in better code quality, maximum test coverage, minimal bottlenecks, less technical debt and fewer bugs.

Here is my LinkedIn profile if you want to read more about my professional experience or want to say hello! Cheers!! 

Zero to Software Architect Learning Track

Check out the Zero to Software Architect learning track. This unique learning track educates you step by step on software architecture, cloud infrastructure and distributed system design, starting right from zero. It takes you right from having no knowledge on the domain to making you a pro in designing web-scale distributed systems like YouTube, Netflix, ESPN and the like.

Student Reviews

Check out what those enrolled are saying about my courses here.

Check Out My Blog

I write about distributed systems, software architecture, cloud, system design and backend engineering in general on my blog scaleyourapp.com Check it out.