You are on page 1of 25

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

You might also like