You are on page 1of 44

Software Architecture & Design of

Large Scale Systems


Software Architecture & Design of Large Scale Systems

Introduction to System Requirements & Architectural Drivers 1


Introduction to System Design & Architectural Drivers 1
Feature Requirements - Step-by-Step Process 2
System Quality Attributes Requirements 3
System Constraints in Software Architecture 4
Most Important Quality Attributes in Large-Scale Systems 5
Performance 5
Scalability 7
Availability - Introduction & Measurement 8
Fault Tolerance & High Availability 9
SLA, SLO, SLI 11
API Design 12
Introduction to API Design for Software Architects 12
RPC 13
REST API 15
Large Scale Systems Architectural Building Blocks 16
DNS, Load Balancing & GSLB 16
Message Brokers 18
API Gateway 19
Content Delivery Network - CDN 21
Data Storage at Global Scale 22
Relational Databases & ACID Transactions 22
Non-Relational Databases 23
Techniques to Improve Performance, Availability & Scalability Of Databases 24
Brewer’s (CAP) Theorem 26
Unstructured Data Storage 27
Software Architecture Patterns 28
Multi-Tier Architecture 28
Microservices Architecture 29
Event-Driven Architecture 30
Big Data Architecture Patterns 33
Big Data Processing Strategies 33
Lambda Architecture 34
Software Architecture & System Design Practice 35
Design a Highly Scalable Discussion Forum 1 - Requirements & API 35
Design a Highly Scalable Discussion Forum 2 - Functional Architecture Diagram 36
Design a Highly Scalable Discussion Forum 3 - Final Software Architecture 37
Design an E-Commerce Marketplace Platform 1 - Requirements & Sequence Diagram 38
Design an E-Commerce Marketplace Platform 2 - Functional Diagram 40

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

Design an E-Commerce Marketplace Platform 3 - Final Software Architecture 41

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
n s y
bi em
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
n s y
bi em
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 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 y
s
n em
b i
r e a d
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v
y
© pD to

sk y
o bi n e m
T r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
i n s y
b e m
r e a d
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
n s y
bi e m
r e a d
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

y
T o sk y
n
i em
r b
e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 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

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
i n s y
b e m
r e a d
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o y
k
s y
n
i em
r b
e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 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

k y
n s y
bi e m
r e a d
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
era

M e k y v elo
p

© pD n s
to
i em
p
yde

o r e b d
T g c a
P o A
l
e p e r .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
b i
r e a d
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o y
s k y
bi n e m
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o
© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems

k y
i n s y
b e m
r e a d
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
i s
n em
r e b d
g c a
P o A
l
e p e r .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
i s
n em
r e b d
g c a
P o A
l
e p e r .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o y
k
s y
i n e m
r e b d
g c a
P o A
l
e p e r .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o
© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com
Software Architecture & Design of Large Scale Systems

k y
n s y
bi e m
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e a d
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
i n s
b e m
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


k y
s y
Software Architecture & Design of Large Scale Systems

i n e m
r e b d
g c a
P o A
l
e p e r .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e a d
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e yp de
v

© pD to

sk y
T o n
i em
r b
e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
i n s
b e m
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


k y
s y
Software Architecture & Design of Large Scale Systems

bi n e m
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
i n s
b e m
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
n s y
bi e m
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e a d
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

k y
n s
i em y
r b
e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


k y
n s y
i em
Software Architecture & Design of Large Scale Systems

b
r e ad
o g c
P r A
l
e p e .com

a m y

h l o ade

ic ve
c
p era
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com


Software Architecture & Design of Large Scale Systems

y
k y
s
n em
bi
r e ad
o g c
P r A
l
e p e .com

a
y
em
h l o ca
d

ic ve er a
p
elo
M e p de
v

© pD to

T o

© 2022 Michael Pogrebinsky. All rights reserved. www.topdeveloperacademy.com

You might also like