Skip to the content.
Overview of System Design
- Gathering Requirements:
- Define functional and non-functional requirements for a simple system like a URL shortener.
- Identify constraints such as data storage, scalability, and high availability.
- Design High-Level Architecture:
- Use tools like draw.io or Lucidchart to create a high-level architecture diagram for the system.
- Include components such as frontend, backend, database, and caching layer.
- Explore Trade-offs:
- Discuss trade-offs in choosing a relational database vs a NoSQL database for the system.
- Create a document explaining decisions made based on scalability and consistency requirements.