Uploaded by Joshua Omolewa

Software+Architecture+and+Design+of+Large+Scale+Systems+-+Workbook

advertisement
Software Architecture & Design of
Large Scale Systems
Software Architecture & Design of Large Scale Systems
Introduction to System Requirements & Architectural Drivers
Introduction to System Design & Architectural Drivers
Feature Requirements - Step-by-Step Process
System Quality Attributes Requirements
System Constraints in Software Architecture
Most Important Quality Attributes in Large-Scale Systems
Performance
Scalability
Availability - Introduction & Measurement
Fault Tolerance & High Availability
SLA, SLO, SLI
API Design
Introduction to API Design for Software Architects
RPC
REST API
Large Scale Systems Architectural Building Blocks
DNS, Load Balancing & GSLB
Message Brokers
API Gateway
Content Delivery Network - CDN
Data Storage at Global Scale
Relational Databases & ACID Transactions
Non-Relational Databases
Techniques to Improve Performance, Availability & Scalability Of Databases
Brewer’s (CAP) Theorem
Unstructured Data Storage
Software Architecture Patterns
Multi-Tier Architecture
Microservices Architecture
Event-Driven Architecture
Big Data Architecture Patterns
Big Data Processing Strategies
Lambda Architecture
Software Architecture & System Design Practice
Design a Highly Scalable Discussion Forum 1 - Requirements & API
Design a Highly Scalable Discussion Forum 2 - Functional Architecture Diagram
Design a Highly Scalable Discussion Forum 3 - Final Software Architecture
Design an E-Commerce Marketplace Platform 1 - Requirements & Sequence Diagram
Design an E-Commerce Marketplace Platform 2 - Functional Diagram
© 2022 Michael Pogrebinsky. All rights reserved.
1
1
2
3
4
5
5
7
8
9
11
12
12
13
15
16
16
18
19
21
22
22
23
24
26
27
28
28
29
30
33
33
34
35
35
36
37
38
40
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
Design an E-Commerce Marketplace Platform 3 - Final Software Architecture
© 2022 Michael Pogrebinsky. All rights reserved.
41
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s y
n
i em
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s y
n
i em
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
© 2022 Michael Pogrebinsky. All rights reserved.
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
© 2022 Michael Pogrebinsky. All rights reserved.
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
y
© pD
k y
s
n
o
i
m
e
b
T
e ad
r
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s
y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
y
o
k
s
y
T
n
i em
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
p
elo
v
de
elo
v
de
p
m
de
a
c
era
p
om
c
.
y
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
© 2022 Michael Pogrebinsky. All rights reserved.
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
© 2022 Michael Pogrebinsky. All rights reserved.
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
© 2022 Michael Pogrebinsky. All rights reserved.
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s
y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
y
T
k
s y
n
i em
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
p
elo
v
de
elo
v
de
p
p
m
de
a
c
era
m
de
a
c
era
om
c
.
y
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
© 2022 Michael Pogrebinsky. All rights reserved.
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
y
k
e
M
s
y
n
© pD
i em
b
o
e
d
r
a
T
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
p
elo
v
de
elo
v
de
p
m
de
a
c
era
p
om
c
.
y
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
y
k
s
y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
p
elo
v
de
elo
v
de
p
p
em
d
ca
a
r
e
m
de
a
c
era
om
c
.
y
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s
y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
y
T
k
s y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
p
elo
v
de
elo
v
de
p
em
d
ca
a
r
e
p
om
c
.
y
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n
i
m
e
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
y
k
s
y
n
i
m
e
b
e
d
r
a
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
Software Architecture & Design of Large Scale Systems
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
y
© pD
k
s
y
n
o
i em
T
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
p
elo
v
de
elo
v
de
p
em
d
ca
a
r
e
p
om
c
.
y
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n
i
m
e
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
y
k
s y
n
i
m
e
b
e
d
r
a
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
Software Architecture & Design of Large Scale Systems
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n
i
m
e
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s y
n
i
m
e
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k
s
y
n
i em
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
y
k
s y
n
i em
b
e ad
r
g c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
Software Architecture & Design of Large Scale Systems
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
m
de
a
c
era
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems
y
k y
s
n em
i
b
e
d
r
a
g
c
o
A
P
r
l
e
e p
a
o
h
l
ic ve
e
M
© pD
o
T
to
© 2022 Michael Pogrebinsky. All rights reserved.
p
elo
v
de
p
em
d
ca
a
r
e
om
c
.
y
www.topdeveloperacademy.com
Download