What is system design?
System design is the process of designing the elements of a system such as the architecture, modules and components, the different interfaces of those components and the data that goes through that system. It is meant to satisfy specific needs and requirements of a business or organization through the engineering of a coherent and well-running system.
What is the purpose of system design
The purpose of the System Design process is to provide sufficient detailed data and information about the system and its system elements to enable the implementation consistent with architectural entities as defined in models and views of the system architecture.
What are the elements of a system?
How do you design a system?
(we are using a chat app as an example)
For endpoints
Users: create, update
Messages: message, timeCreated, destination, etc
For data model
User: firstName, lastName, displayName, email, password, etc
Group: id, list of users
Also talk about which programming language, framework, cloud infrastructure, etc to use.
You also walk through a happy path of how a user uses the system.