Components to Consider in System Design
No two systems are alike, and therefore no two system designs are alike. However, there are some common components that you will find detailed in system design, such as the features, hardware, data, and architecture of the system, as well as how it handles security, scaling, and so on. We will learn about a few common components in detail. Let's start by understanding the features of a system.
Features
Clear communication regarding the features of the system is integral to any design:
- What does the system do?
- What problems does it solve?
- What inputs can it handle?
- What outputs does it produce?
Everyone must agree on this section. For example, imagine designing Facebook messenger. You might assume that a chat app is very straightforward and doesn't need a complicated design. But if you have several teams working on a chat app, they might all have different ideas about what features to support. Does...