We may earn an affiliate commission when you visit our partners.
Akshat Verma

Technology selection is a core component of system design. Once an architect identifies the components needed for the system, he/she needs to select a technology for each component. This course will help aspiring architects select the appropriate technology for each of the component. This course is structured into the following topics.

Read more

Technology selection is a core component of system design. Once an architect identifies the components needed for the system, he/she needs to select a technology for each component. This course will help aspiring architects select the appropriate technology for each of the component. This course is structured into the following topics.

  1. Database selection - We explain how SQL and NoSQL technologies are architecturally different and the scenarios under which each should be used. We also cover specialized databases that handle specific scenarios like Text search, Compound search and persistent data structures. We define a decision framework that leverages all these aspects to select the database for every scenario.

  2. Data warehouses and data lakes - We cover why the OLAP queries that data warehouses run requires a fundamentally data layout pattern. We discuss how data lakes and warehouses need to be designed and provide a reference architecture. We also discuss the Event Hub pattern that is becoming very relevant in modern platforms.

  3. Compute selection and Cache design - In this topic, we cover the tradeoffs associated with various compute platforms and how an architect should make the selection. We also discuss the need for caching and the aspects that need to be kept in mind, while designing a caching solution.

Enroll now

What's inside

Learning objectives

  • Select the appropriate technology for your system
  • Understand how to select the appropriate database
  • Understand how to select the appropriate compute platform
  • Understand when to cache and how to design your caching system

Syllabus

Introduction
Course overview
How to select the appropriate database technology for any system component
SQL versus NoSQL part 1
Read more
SQL Versus NoSQL Part 2
Special Situations
Putting it all together
Understand how data warehouses are different from databases and design data lakes and data warehouses
OLTP Versus OLAP
Data lake and data warehouses - part 1
Data lake and data warehouses - part 2
Understand how to select the compute platform and when to use a cache
Compute selection
To Cache or not to cache
Technology selection assignment

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores database selection, covering SQL and NoSQL technologies, which are essential for modern system design and architecture
Discusses data warehouses and data lakes, explaining the importance of data layout patterns for OLAP queries, which is crucial for data-driven decision-making
Covers compute selection and cache design, addressing the trade-offs associated with various compute platforms, which is vital for optimizing system performance
Includes an assignment on technology selection, providing hands-on experience in applying the concepts learned throughout the course
Examines the Event Hub pattern, which is increasingly relevant in modern platforms, offering insights into real-time data processing and event-driven architectures

Save this course

Save System Design - Technology Selection to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in System Design - Technology Selection with these activities:
Review Database Concepts
Reviewing fundamental database concepts will provide a solid foundation for understanding the database selection module.
Show steps
  • Review the differences between SQL and NoSQL databases.
  • Study common database architectures and design patterns.
  • Practice designing simple database schemas.
Read 'Designing Data-Intensive Applications'
Reading this book will provide a deeper understanding of the concepts discussed in the course, particularly regarding database selection and data warehousing.
Show steps
  • Read the chapters on database technologies and data warehousing.
  • Take notes on key concepts and design patterns.
  • Reflect on how the concepts apply to real-world scenarios.
Caching Scenario Exercises
Practicing caching scenario exercises will help you develop your intuition for when to use a cache and how to design a caching system.
Show steps
  • Find or create a set of caching scenario exercises.
  • For each scenario, determine whether caching is appropriate.
  • If caching is appropriate, design a caching system for the scenario.
  • Evaluate the performance of your caching system.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Technology Selection Matrix
Creating a technology selection matrix will help you organize your knowledge and make informed decisions when selecting technologies for different system components.
Show steps
  • Identify the key criteria for technology selection.
  • Research different technologies for each component.
  • Evaluate each technology against the key criteria.
  • Create a matrix summarizing your findings.
Blog Post: SQL vs NoSQL
Creating a blog post comparing SQL and NoSQL databases will reinforce your understanding of their architectural differences and use cases.
Show steps
  • Research the key differences between SQL and NoSQL databases.
  • Identify scenarios where each type of database is most appropriate.
  • Write a blog post summarizing your findings.
  • Publish the blog post on a platform like Medium or your personal website.
Design a Data Warehouse
Designing a data warehouse will allow you to apply the concepts learned in the data warehousing module and solidify your understanding of OLAP queries and data layout patterns.
Show steps
  • Define the business requirements for the data warehouse.
  • Design the data model and schema.
  • Select the appropriate data warehousing technology.
  • Implement the data warehouse and test its performance.
Read 'Database Internals'
Reading this book will provide a deeper understanding of the underlying technologies used in database systems, which can inform your technology selection decisions.
Show steps
  • Read the chapters on storage engines and indexing.
  • Take notes on key concepts and implementation details.
  • Reflect on how these internals affect database performance and scalability.

Career center

Learners who complete System Design - Technology Selection will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in System Design - Technology Selection.
Provides a comprehensive overview of the principles and practices of designing scalable, reliable, and maintainable data systems. It covers a wide range of topics relevant to technology selection, including database technologies, data warehousing, and caching strategies. This book is commonly used as a reference by industry professionals. It adds depth to the course by providing real-world examples and case studies.
Provides a deep dive into the inner workings of database systems. It covers topics such as storage engines, indexing, query processing, and transaction management. While not strictly necessary for technology selection, understanding these internals can help you make more informed decisions. This book is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser