System design είναι η διαδικασία ορισμού της αρχιτεκτονικής, των συστατικών και των αλληλεπιδράσεων ενός λογισμικού συστήματος για την εκπλήρωση απαιτήσεων — ιδιαίτερα για scalability, reliability και performance. Πρόκειται για το πώς τα κομμάτια ταιριάζουν μεταξύ τους για να δημιουργήσουν συστήματα που λειτουργούν σε μεγάλη κλίμακα.
Τι καλύπτει το system design
System design = the high-level structure of a system:
→ COMPONENTS → services, databases, caches, queues, load balancers, etc.
→ how they INTERACT → data flow, communication, APIs
→ meeting REQUIREMENTS → functional (what it does) + non-functional (scale, speed,
reliability, availability)
→ about the BIG PICTURE / architecture, not individual code
