Software Architecture & System Design Practical Case Studies PDF
Document Details
Uploaded by PreeminentChrysoprase1769
2023
Michael Pogrebinsky
Tags
Summary
This document is a practical workbook on software architecture and system design. The workbook covers a variety of topics in detail, providing diagrams and designs for various systems including image sharing platforms, video streaming services, and instant messaging platforms. The included design case studies provide practical insights into system design.
Full Transcript
Software Architecture & System Design Practical Case Studies By Michael Pogrebinsky Copyright Notice The workbook's contents, including (but not limited to) all written material and images, are protected under international copyri...
Software Architecture & System Design Practical Case Studies By Michael Pogrebinsky Copyright Notice The workbook's contents, including (but not limited to) all written material and images, are protected under international copyright and trademark laws. Any redistribution or reproduction of part or all of the contents in any form is prohibited. You may not, except with written permission from the author, distribute or commercially exploit the content. Nor may you transmit it or store it on any other website, forum, or other forms of electronic retrieval systems. You may print or download to local hard disk extracts for your personal and non-commercial use only. © 2023 Michael Pogrebinsky - Top Developer Academy. All rights reserved. Introduction 3 Introduction to Software Architecture & System Design Case Studies 3 Design a Highly Scalable Image Sharing Social Media Platform 4 System Design of a Highly Scalable Image-Sharing Platform - Part 1 4 System Design of a Highly Scalable Image-Sharing Platform - Part 2 5 System Design of a Highly Scalable Image-Sharing Platform - Part 3 6 Design a Video-On-Demand (VOD) Streaming Service 7 Software Architecture & System Design of a VOD Streaming Service - Part 1 7 Software Architecture & System Design of a VOD Streaming Service - Part 2 9 Software Architecture & System Design of a VOD Streaming Service - Part 3 10 Design a Highly Scalable, Real-Time Instant Messaging Service 11 Software Architecture & System Design of a Real-Time Instant Messaging - Part 1 11 Software Architecture & System Design of a Real-Time Instant Messaging - Part 2 13 Software Architecture & System Design of a Real-Time Instant Messaging - Part 3 14 Design a Typeahead / Autocomplete for a Search Engine 15 System Design a Highly Scalable Typeahead Service for a Search Engine - Part 1 15 System Design a Highly Scalable Typeahead Service for a Search Engine - Part 2 17 System Design a Highly Scalable Typeahead Service for a Search Engine - Part 3 18 Design a Scalable Ride Sharing Service 19 Software Architecture & Design of a Scalable Rideshare Service - Part 1 19 Software Architecture & Design of a Scalable Rideshare Service - Part 2 21 Software Architecture & Design of a Scalable Rideshare Service - Part 3 22 Software Architecture & Design of a Scalable Rideshare Service - Part 4 23 Software Architecture & Design of a Scalable Rideshare Service - Part 5 24 1 2 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Introduction Introduction to Software Architecture & System Design Case Studies Software Architect’s Mindset - Important Concepts ○ Abstraction ○ Every System is Unique ○ System Design doesn’t have One Correct Solution System Design - Step-by-step Process ○ Gathering Functional Requirements ○ Gathering Non-Functional Requirements ○ Defining System’s API & Sequence of Events ○ Designing for Functional Requirements ○ Addressing Non-Functional Requirements Notes: 1 3 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Design a Highly Scalable Image Sharing Social Media Platform System Design of a Highly Scalable Image-Sharing Platform - Part 1 Sequence Diagram and System’s API: y k y in s b e m re ad o g c P r A l e p e ha l o ic ve M e © pD To 1 4 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com System Design of a Highly Scalable Image-Sharing Platform - Part 2 y Functional Software Architecture Diagram: sk b in my g r e d e P o Ac a ael er ich lo p M e v e © D o p T Notes: 1 5 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com System Design of a Highly Scalable Image-Sharing Platform - Part 3 Final Software Architecture Diagram: sk y b in my g r e d e P o Ac a ael er ich lo p M e © Dev o p T Notes: 1 6 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Design a Video-On-Demand (VOD) Streaming Service Software Architecture & System Design of a VOD Streaming Service - Part 1 Sequence Diagram and API: sk y b in my g e r ad e P o Ac ae l er ich l o p M e v e © D o p T 1 7 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Notes: 1 8 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & System Design of a VOD Streaming Service - Part 2 Functional Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 1 9 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & System Design of a VOD Streaming Service - Part 3 Final Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 10 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Design a Highly Scalable, Real-Time Instant Messaging Service Software Architecture & System Design of a Real-Time Instant Messaging - Part 1 Sequence Diagram and System’s API: sk y b in my g r e d e P o Ac a ae l er ich l o p M e v e © D o p T 11 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Notes: 12 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & System Design of a Real-Time Instant Messaging - Part 2 Functional Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 13 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & System Design of a Real-Time Instant Messaging - Part 3 Final Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 14 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Design a Typeahead / Autocomplete for a Search Engine System Design a Highly Scalable Typeahead Service for a Search Engine - Part 1 System’s API: sk y b in my r e g cad e Po A ae l er i h c elo p M © D e v o p T 15 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Notes: 16 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com System Design a Highly Scalable Typeahead Service for a Search Engine - Part 2 Functional Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 17 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com System Design a Highly Scalable Typeahead Service for a Search Engine - Part 3 Final Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 18 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Design a Scalable Ride Sharing Service Software Architecture & Design of a Scalable Rideshare Service - Part 1 Sequence Diagram and System’s API: sk y b in my g re d e P o Ac a ae l er ich l o p M e v e © D o p T 19 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com sk y b in my g e r ad e P o Ac ae l er ich l o p M e © Dev o p T Notes: 20 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & Design of a Scalable Rideshare Service - Part 2 Functional Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 21 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & Design of a Scalable Rideshare Service - Part 3 Functional Software Architecture Diagram: sk y b in my g r e d e P o Ac a ae l er ich l o p M e © Dev o p T Notes: 22 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & Design of a Scalable Rideshare Service - Part 4 Adding a Bloom Filter to the Users Service: sk y b in my g e r ad e P o Ac ae l er ich l o p M e © Dev o p T Notes: 23 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Software Architecture & Design of a Scalable Rideshare Service - Part 5 Adding Geohash: k y Final Software Architecture Diagram: s b in my g r e d e P o Ac a ae l er ich l o p M e v e © D o p T 24 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com Notes: 25 1 © 2023 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com