18 مستودعات
Resources for learning how to design scalable and reliable distributed systems.
Explore 18 awesome GitHub repositories matching part of an awesome list · System Design And Architecture. Refine with filters or upvote what's useful.
هذا المشروع عبارة عن مورد تعليمي شامل ودليل دراسي يركز على بنية الأنظمة الموزعة وتصميم البنية التحتية للـ backend. يوفر منهجاً منظماً لإتقان مبادئ القابلية للتوسع، والموثوقية، والأداء المطلوبة لتصميم أنظمة برمجية معقدة. يتميز المستودع بتقديم نهج منهجي للتحضير للمقابلات التقنية، حيث يدمج أنماط التصميم، والمقايضات المعمارية، وأدوات التكرار المتباعد لمساعدة المستخدمين على الاحتفاظ بالمفاهيم المعقدة. ويؤكد على التحليل القائم على القيود، حيث يعلم المستخدمين كيفية تقييم المتطلبات المتنافسة مثل زمن الوصول (latency)، والاتساق، والتوافر عند صياغة التصاميم المعمارية. يغطي المحتوى طيفاً واسعاً من قدرات تصميم النظام، بما في ذلك استراتيجيات توسيع قواعد البيانات، وإدارة حركة المرور، وتحسين البنية التحتية. ويفصل تقنيات التوسع الأفقي، والتخزين المؤقت متعدد الطبقات، والتواصل غير المتزامن، واكتشاف الخدمات، مع توفير أطر عمل لإجراء تقديرات الموارد وتخطيط السعة. يتم تنظيم التوثيق كدليل دراسي، مما يوفر مساراً منهجياً عبر أساسيات هندسة الـ backend وتصميم الأنظمة واسعة النطاق.
Comprehensive guide for learning how to design large-scale systems.
This project is a centralized engineering knowledge repository that provides a structured curriculum for mastering system design, architectural patterns, and fundamental software development workflows. It serves as a professional development resource for engineers, offering foundational knowledge and real-world case studies to support the design of scalable, secure, and efficient distributed systems. The repository distinguishes itself through a visual-first approach to knowledge synthesis, distilling complex technical concepts into high-density graphical diagrams and succinct illustrations.
Fundamental concepts and patterns for designing scalable systems.
This project is a comprehensive educational resource focused on the principles, patterns, and trade-offs required to design scalable, reliable, and high-performance distributed systems. It provides a structured curriculum that covers the fundamental architectural strategies necessary for building modern software infrastructure, ranging from high-level system decomposition to low-level networking and data management. The repository distinguishes itself by offering deep dives into complex architectural patterns, such as microservices-based decomposition, event-driven communication, and command-
Structured resources for mastering system design interview topics.
This project is a comprehensive, community-driven knowledge repository designed to support software engineers in mastering distributed systems and architectural design. It functions as a structured compendium of engineering principles, providing a centralized index of patterns, trade-offs, and best practices required for building scalable and reliable software infrastructure. The repository distinguishes itself through a highly organized taxonomy that connects complex technical concepts into a cohesive learning path. It features a categorized collection of system design interview problems, ra
Curated list of system design learning materials and guides.
This project is a comprehensive technical interview question bank and reference library designed for software engineering roles at major technology companies. It serves as a study guide and knowledge base covering the core principles of high-performance systems programming and computer science theory. The collection focuses on deep technical domains, including C++ language mastery, distributed systems design, and database engineering. It provides detailed material on consensus protocols, cluster coordination, and the architectural differences between SQL and NoSQL implementations. The resour
Serves as a guide for designing scalable backend architectures using consensus and sharding.
System design interview for IT companies
Curated list of resources for system design interview preparation.
These are the best resources for System Design on the Internet
High-quality materials for preparing for system design interviews.
This project is a comprehensive educational resource and curriculum focused on site reliability engineering, distributed systems, and infrastructure operations. It provides technical guides, a systems engineering course, and instructional manuals designed to teach the principles of managing large-scale computing environments. The curriculum covers high-level architectural design for scalability and resilience, including fault-tolerant infrastructure, high-availability patterns, and microservices decomposition. It emphasizes the practical application of site reliability engineering through the
Provides a comprehensive curriculum for learning how to design scalable and reliable distributed systems.
This project is a curated library of technical ebooks and guides focused on Java language learning, backend architecture, and Java Virtual Machine internals. It serves as a reference-driven knowledge base and a technical repository for software engineering principles. The collection provides specialized materials for studying Java backend architecture, including high-performance server-side development and concurrency. It includes a dedicated JVM technical reference for performance tuning and internal machine behavior, as well as resources for algorithm study and data structures. Additional
Offers resources for learning how to design scalable distributed systems, concurrency, and networking protocols.
هذا المشروع عبارة عن دليل للمقابلات الهندسية في الواجهة الخلفية (backend) ومورد دراسي لعلوم الحاسب. يوفر مجموعة منسقة من الأسئلة والأجوبة التقنية التي تركز على بنية جانب الخادم، وتحسين قواعد البيانات، وأساسيات الشبكات للتحضير للتقييمات المهنية لهندسة البرمجيات. يعمل المورد كمرجع تقني لدراسة خصائص ACID، وعزل المعاملات، وتحسين الأنظمة العلائقية وغير العلائقية. ويتضمن مرجعاً لهندسة البرمجيات لتحليل أنماط التصميم، وحقن التبعية (dependency injection)، والمقايضات الهيكلية لأطر عمل الواجهة الخلفية المختلفة. يغطي المحتوى مجموعة واسعة من المجالات التقنية، بما في ذلك أساسيات أنظمة التشغيل، ودراسة بروتوكولات الشبكة، وهياكل البيانات. كما يوفر كتيباً لـ DevOps والبنية التحتية، يوضح خطوط أنابيب التكامل المستمر، وتنسيق الحاويات، واستراتيجيات النشر بدون توقف (zero-downtime).
Analyzes server-side frameworks and design patterns to evaluate scalability and maintainability.
InterviewGuide is a comprehensive technical interview preparation platform that covers the full spectrum of software engineering recruitment, from foundational computer science concepts through to offer negotiation. It provides structured learning paths across algorithms, operating systems, databases, networking, and programming languages, with a particular emphasis on C++ and Go. The platform aggregates real interview experiences and company-specific questions from major tech employers, offering candidates a searchable database of past written exam problems and detailed accounts of actual int
Teaches distributed system design principles for balancing consistency, availability, and partition tolerance.
هذا المشروع عبارة عن مكتبة مرجعية منسقة لأنماط الخوارزميات، وتطبيقات هياكل البيانات، وملاحظات تصميم النظام. يعمل كمجموعة مشاكل خوارزمية بلغة Java ودليل برمجة تنافسي، ويوفر مجموعة من الحلول لتحديات البرمجة من منصات مثل LeetCode وLintCode. تتميز المكتبة بمجموعتها الشاملة من تطبيقات Java لهياكل البيانات المتقدمة والاستراتيجيات الخوارزمية. تتضمن مراجع مفصلة لحل المشكلات المعقدة مع تحليل مصاحب لتعقيد الوقت والمساحة. يغطي المشروع مساحة واسعة من أساسيات علوم الكمبيوتر، بما في ذلك تصميم الخوارزميات، وتطبيق هياكل البيانات، وتصميم النظام. تمتد محتوياته إلى نظرية الرسم البياني، والبرمجة الديناميكية، والبحث والتحسين، وتقنيات معالجة البيانات الخطية. كما يتضمن ملاحظات حول قابلية توسيع البنية التحتية، والتخزين المؤقت للأداء، وأنماط هندسة البرمجيات.
Provides architectural summaries and strategies for scaling infrastructure and managing distributed data.
This project is a comprehensive set of roadmaps and curricula designed for technical, behavioral, and architectural interview mastery. It provides structured guides, frameworks, and checklists for mastering algorithmic coding, system design, and behavioral questions. The resource is distinguished by specialized study paths, including a frontend engineering curriculum and a dedicated system design framework for architecting scalable systems. It also features a behavioral interview playbook that utilizes a standardized response method to align professional experience with company values. The g
Provides resources and frameworks for practicing the design of scalable technical systems.
This project is a learning platform and study guide focused on the principles of distributed systems and software architecture. It provides a collection of architectural scenarios and technical problem statements designed to help engineers practice system design, capacity planning, and trade-off analysis for high-scale services. The repository distinguishes itself by offering functional prototypes and models for complex engineering challenges. Rather than providing purely theoretical documentation, it includes executable representations of system components—such as storage services, load bala
Offers foundational knowledge and guides for designing scalable and reliable distributed systems.
This project is a reference library of architectural blueprints, study materials, and design patterns for building scalable, high-availability distributed systems. It serves as a technical guide for scalability engineering, providing structural solutions for common engineering challenges. The repository focuses on distributed systems design, covering essential patterns for data replication, consensus algorithms, and transaction management. It distinguishes itself by offering detailed blueprints for specialized domains, including real-time data streaming, large-scale data storage, and high-ava
Serves as a comprehensive reference library for learning how to design scalable and reliable distributed systems.
This project is a comprehensive study guide and reference repository designed to prepare software engineers for technical interviews. It provides a structured collection of fundamental computer science concepts, algorithm implementations, and system design principles, serving as a centralized resource for reviewing the core knowledge required for engineering assessments. The repository distinguishes itself by offering language-agnostic concept modeling and modular knowledge categorization, which allows candidates to navigate complex topics efficiently. It covers a broad spectrum of technical
Provides resources for learning how to design scalable and reliable distributed systems.
This project serves as a comprehensive handbook and architectural guide for software engineering best practices. It provides a curated set of principles and technical guidelines focused on maintaining long-term code health, reducing complexity, and ensuring that software systems remain readable and manageable as they grow. The core philosophy centers on modularity and domain-driven design, encouraging developers to structure applications around specific business use cases rather than the constraints of external frameworks. By prioritizing interface-based contracts and dependency injection, th
Prioritizes clear boundaries and contracts to allow for future growth and easier component adaptation.
Know a resource that isn't listed below? Feel free to create a new pull request.
Resources for building and maintaining design systems.