Web Application Architecture & Software Architecture 101 Course
What Is This Course All About?
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 & much more.
In this course, I also go through the techniques of picking the right architecture and the technology stack to implement our use case. I 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.
By the end of the course, you’ll have a comprehensive insight into the web application architecture. If you have a startup idea & 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.
Who Is This Course For?
There is no prerequisite to taking this course. It is meant for anyone looking to build a good concept in web application & software architecture & for anyone who wants to strengthen their fundamentals on it.
If you are a beginner just starting your career in software development, this course will help you a lot. Designing software is like fitting the lego blocks together. With this course, you’ll develop an insight into how to fit them together and build cool stuff.
It will also help you with the software engineering interviews, especially for the full stack developer positions.
This course does not contain any code, & has a thorough discussion on the architectural concepts. It also contains a lot of illustrations to help you grasp the concepts better.
In the course I’ve discussed different tiers in software architecture, client-server architecture, HTTP PUSH & PULL communication mechanism, concepts like scalability, high availability, monolith & microservices architecture, when to pick which for your app. Databases, different types of data, Relational, NoSQL databases, multi-model databases, different types of databases, how to pick the right database for your app, their use cases.
The course has a discussion on concepts like polyglot persistence, eventual consistency, strong consistency, CAP Theorem. Caching, different caching strategies. Message queue, commonly used messaging models in web applications. Designing real-time feeds and notification system with the help of message queues. Handling concurrent requests with message queues.
Stream processing, Data ingestion, their use cases, challenges involved, data pipelines, distributed data processing architecture. Event-driven architecture, concepts like blocking non-blocking, webhooks, different software architectures, peer to peer architecture, decentralized web, decentralized social networks, federated architecture, mobile application architecture.
Techniques for picking the right technology stack for your application. I’ve included a few case studies where I discuss designing apps like Google Maps and a baseball game ticket booking platform.
Also, this course will be continually updated & new content will be added from time to time.
Where Can I Buy The Course?
Course url: Click here to buy the course
Educative is a platform that offers interactive programming courses, with embedded coding environments, for software developers, to make learning quick and efficient. No setup required, developer environments are pre-configured in the cloud. You can learn at your own pace with in-browser exercises.
A few preview lessons are available for the course.
This course is a part of Zero to Software Architect learning track –
Zero to Software/Application Architect learning track is a series of four courses that I am writing with an aim to educate you, step by step, on the domain of software architecture & distributed system design. The learning track takes you right from having no knowledge in it to making you a pro in designing large scale distributed systems like YouTube, Netflix, Google Stadia & so on. Check it out.
Hi, I am Shivang, the author of this course also the creator of this blog. I’ve been writing code from the past 8 years professionally & 14 years personally. In my career, I’ve gotten the opportunity to work on large scale internet services for some of the industry giants on several different domains such as E-commerce, Fintech, Telecom and others.
I’ve written applications from the bare bones, right from the idea to production. I’ve maintained code, as well as worked in the production support for systems receiving millions of hits every single day.
My last job was at Hewlett Packard Enterprise as a Full-Stack developer in their Technical Solutions – R&D team.
Via this course, I’ve tried my best to share the knowledge, insights and the experience gained in my years of software development, with all of you guys!!.
Here is my LinkedIn profile, in case you want to say Hi!!
About me page on this blog.
Subscribe to the newsletter to stay notified of new developments on the blog
More On The Blog
- Distributed Systems, Scalability & System Design #1 – Heroku Client Rate Throttling
- Zero to Software/Application Architect – Learning Track
- Java Full Stack Developer – The Complete Roadmap – Part 2 – Let’s Talk
- Java Full Stack Developer – The Complete Roadmap – Part 1 – Let’s Talk
- Best Handpicked Resources To Learn Software Architecture, Distributed Systems & System Design