This is a list of things to follow for a system design
Requirements and goals of the system
- Scope the system
- Undestand the functional requirements
- Understand the non functional requirements
Do a high level design
- Discuss what components will be used
- How components will fit together
Detailed design
- Data modelling
- Exception handling
- Concurrency or parallel computing
- Distributed environment
Algorithms
- What algorithms to use for this application
Sources: https://www.youtube.com/watch?v=gVVDo2h6DwA