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