0% found this document useful (0 votes)
325 views

Software Architecture and Design of Large Scale Systems - Workbook

The document discusses key considerations for designing software architectures for large scale systems. It covers important quality attributes like performance, scalability, and availability. It also discusses architectural patterns and building blocks commonly used in large scale systems like microservices, APIs, databases, message brokers and content delivery networks. The document provides examples of designing discussion forum and e-commerce marketplace platforms to demonstrate architectural practices.

Uploaded by

Ketevan Potova
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
325 views

Software Architecture and Design of Large Scale Systems - Workbook

The document discusses key considerations for designing software architectures for large scale systems. It covers important quality attributes like performance, scalability, and availability. It also discusses architectural patterns and building blocks commonly used in large scale systems like microservices, APIs, databases, message brokers and content delivery networks. The document provides examples of designing discussion forum and e-commerce marketplace platforms to demonstrate architectural practices.

Uploaded by

Ketevan Potova
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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