30 open-source projects similar to madd86/awesome-system-design, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Awesome System Design alternative.
This project serves as a comprehensive technical reference for the architecture and design of data-intensive applications. It provides a structured analysis of the fundamental principles required to build reliable, scalable, and maintainable software systems, covering the core trade-offs inherent in modern data infrastructure. The repository explores the mechanics of distributed data management, including strategies for replication, partitioning, and achieving consensus across multiple nodes. It details the design of storage engines, indexing techniques, and transaction management models, whi
This repository is a comprehensive resource for software engineering career development and technical interview preparation. It provides a structured collection of learning materials, algorithmic patterns, and system design guides designed to assist developers in mastering the core competencies required for professional engineering roles. The project distinguishes itself through a pattern-based content taxonomy that groups diverse technical challenges by underlying algorithmic strategies. This approach allows users to identify and apply reusable solutions during high-pressure assessments. It
This project is a comprehensive educational resource and study guide focused on distributed systems architecture and backend infrastructure design. It provides a structured curriculum for mastering the principles of scalability, reliability, and performance required to design complex software systems. The repository distinguishes itself by offering a methodical approach to technical interview preparation, incorporating design patterns, architectural trade-offs, and spaced repetition tools to help users retain complex concepts. It emphasizes constraint-driven analysis, teaching users how to ev
This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac
NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t
Vector is a high-performance observability data pipeline designed to collect, transform, and route logs, metrics, and traces across distributed infrastructure. It functions as a modular engine that decouples data ingestion from processing and transmission, utilizing a component-based architecture to connect diverse sources to multiple destinations. The project distinguishes itself through a focus on reliability and flow control. It implements backpressure-aware data movement to prevent data loss during traffic spikes and utilizes disk-backed event buffering to ensure durability during network
This repository serves as a structured educational resource for machine learning and data science, providing a centralized collection of tutorials, lecture notes, and implementation guides. It is designed to support self-directed learning by organizing complex technical concepts into a clear, hierarchical path that spans from foundational statistical methods to advanced deep learning architectures. The project distinguishes itself through a comprehensive approach to skill development, bridging the gap between theoretical algorithmic foundations and functional software applications. It offers
This project serves as a comprehensive educational repository and technical reference collection, documenting a wide range of software engineering practices and modern development technologies. It provides a structured learning path for developers, curating tutorials and practical examples that cover the full lifecycle of application development, from initial project scaffolding to deployment and maintenance. The repository distinguishes itself by offering deep technical insights into complex architectural patterns, including actor-based concurrency models for managing parallel tasks and cont
Dask is a parallel computing framework and distributed task scheduler designed to scale Python data science workflows from single machines to large clusters. It functions as a cluster resource manager that orchestrates computational logic by representing tasks and their dependencies as directed acyclic graphs. This architecture allows the system to automate the distribution of workloads across available hardware while managing complex execution requirements. The project distinguishes itself through a lazy evaluation engine that defers data operations until they are explicitly requested, enabl
This project is a curated directory of software, frameworks, and educational resources designed for building, scaling, and maintaining distributed data processing and storage architectures. It serves as a comprehensive index for the distributed computing ecosystem, helping users identify the appropriate tools for managing large-scale information systems. The repository functions as a central hub for data engineering, offering categorized access to technologies that support batch and stream processing, machine learning, and interactive querying. By organizing these resources, it assists in the
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
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-
This project is a comprehensive educational curriculum and practical guide designed to teach the fundamentals of DevOps practices within the Amazon Web Services ecosystem. It provides a structured learning path for mastering cloud infrastructure automation, deployment workflows, and system management through hands-on tutorials. The curriculum covers the end-to-end lifecycle of cloud resources, focusing on defining infrastructure through version-controlled templates and orchestrating automated delivery pipelines. It distinguishes itself by integrating security and governance directly into the
This project is a feature-rich Go client library designed for interacting with Redis. It serves as a comprehensive interface for managing remote data stores, enabling developers to execute standard database commands, handle complex data structures, and perform asynchronous operations within Go applications. The library distinguishes itself through its support for advanced Redis capabilities, including connection pooling, pipelining, and transactional integrity. It provides specialized primitives for managing distributed clusters, including automated topology updates and request routing to sha
Ydata-profiling is an automated exploratory data analysis framework designed to generate comprehensive statistical reports and visual summaries from dataframes. It functions as a diagnostic tool for assessing data quality, identifying missing values, duplicates, and outliers, while providing a scalable engine for profiling massive datasets across distributed enterprise environments. The project distinguishes itself through its ability to handle large-scale data through distributed task orchestration and lazy stream processing, which minimizes memory overhead during complex computations. It in
Dokploy is a self-hosted platform-as-a-service designed to simplify the deployment and management of containerized applications and databases. It provides a centralized control plane that decouples administrative management from application workloads, allowing users to oversee infrastructure across multiple server nodes through a unified web interface or a command-line tool. The platform distinguishes itself through an extensive library of pre-configured application templates, enabling the rapid deployment of databases, identity providers, and various productivity or development tools. It sup
Developer Roadmap is a community-driven platform that provides structured, graph-based learning paths for software engineering. It serves as a comprehensive knowledge repository where technical domains are organized into visual sequences to guide professional skill acquisition and career growth. The project distinguishes itself through a collaborative ecosystem that enables users to contribute roadmaps, curate industry best practices, and maintain professional profiles. It integrates diagnostic assessment frameworks to evaluate technical proficiency, helping developers identify knowledge gaps
Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications. It utilizes ahead-of-time native compilation to transform Java code into standalone, optimized binaries that eliminate the need for a virtual machine, enabling rapid startup and reduced memory consumption. By performing code augmentation during the build phase, it shifts heavy processing tasks away from runtime, ensuring that applications are optimized for cloud-native environments. The framework distinguishes itself through a unified approach to reactive and imperative program
This project is a curated knowledge base and technical reference for professional web styling. It serves as a comprehensive guide to modern CSS best practices, focusing on techniques that leverage native browser capabilities to create efficient, maintainable, and scalable stylesheets. The collection emphasizes the use of declarative style logic and modern layout engines to replace brittle, imperative approaches. By prioritizing native pseudo-class state management, logical property mapping, and relative unit scaling, the guide demonstrates how to build responsive interfaces that remain consis
This project is a curated collection of technical reference materials and study guides designed for machine learning interview preparation. It provides comprehensive resources for candidates pursuing engineering roles, focusing on deep learning, production infrastructure, and large-scale system design. The repository distinguishes itself through an architecture that combines theoretical research with industrial case studies. It utilizes a pattern-based approach to system design, breaking down complex deployments—such as recommendation engines, search ranking, and ad click prediction—into reus
This project is a comprehensive knowledge base and study resource designed for mastering technical interviews. It provides structured guides, roadmaps, and curricula focused on data structures, algorithms, system design, and frontend engineering to help candidates prepare for software engineering screenings. The repository distinguishes itself by offering a holistic approach to professional advancement. Beyond technical drills, it includes a career development handbook covering resume optimization, salary benchmarking, and strategic negotiation coaching. It also provides detailed methodologie
JavaTutorial is a specialized knowledge base and set of study guides focused on backend engineering, the Java ecosystem, distributed systems, and database internals. It serves as a technical reference for engineers, providing structured learning paths and curated content designed for Java backend developer interview preparation. The resource distinguishes itself through deep-dive analyses of internal mechanics, including JVM memory management, garbage collection algorithms, and the internal architecture of the Spring Framework. It provides detailed studies on database internals specifically f
This project is an open-source knowledge repository that serves as a comprehensive technical interview question bank for backend engineering roles. It provides a structured resource for hiring managers and candidates to evaluate proficiency in software design, architectural patterns, and core engineering principles through a curated collection of discussion topics and coding challenges. The repository functions as a programming paradigm evaluation tool, enabling the assessment of a candidate's understanding of object-oriented, functional, and procedural techniques. It distinguishes itself by
This project is a community-curated directory serving as a central hub for resources related to the Next.js framework. It provides a structured collection of learning materials, starter templates, and third-party extensions designed to assist developers in building and maintaining web applications. The repository distinguishes itself through a community-driven contribution model, where developers maintain and update the collection via version-controlled pull requests. This collaborative approach ensures the directory remains an organized taxonomy of real-world examples, architectural patterns
This project is a curated technical resource directory and software engineering learning roadmap. It serves as a computer science study curriculum and professional development framework, providing staged progressions for mastering programming languages, data structures, and full-stack development. The repository functions as a career preparation guide, offering strategic frameworks for resume building, technical interview practice, and internship application targeting. It includes a system for identifying income opportunities and managing a professional social presence to increase visibility.
This project is a curated knowledge repository that serves as a comprehensive reference guide for web development. It organizes high-quality resources, documentation, and technical links into a structured collection designed to assist developers in navigating the frontend ecosystem and staying updated with evolving industry standards. The repository utilizes a directory-based information architecture, categorizing complex technical topics into nested folders to ensure predictable navigation. By leveraging a git-versioned knowledge base, the project maintains a complete historical audit trail
This repository is a curated study guide and knowledge base designed to assist developers in preparing for software engineering job interviews within the Android ecosystem. It organizes essential programming topics, language-specific features, and mobile architecture patterns into a structured format for professional review and skill assessment. The collection covers a broad range of technical domains, including system design principles, performance optimization, and core development concepts. By categorizing these topics, the resource provides a systematic way for users to practice and impro
This project is a technical interview preparation guide and resource kit designed for software engineering job placement. It functions as a markdown resource repository that provides a structured curriculum for computer science fundamentals and a dedicated learning roadmap for data structures and algorithms. The repository organizes study materials into a sequential path, guiding users from basic arrays through to advanced dynamic programming. It includes curated collections of coding practice links, interview puzzles, and strategic notes focused on optimizing time and space complexity. Beyo
CS-Base is a comprehensive educational platform and technical repository designed to support software engineers in mastering backend architecture, artificial intelligence engineering, and career development. It functions as a centralized knowledge hub that combines illustrated theoretical tutorials with practical, project-based learning to bridge the gap between foundational computer science concepts and professional industry requirements. The project distinguishes itself by integrating a robust career mentorship framework with advanced AI engineering resources. It provides users with tools f
LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system architecture, and mobile performance optimization. It serves as a reference for analyzing the Android boot sequence, process bootstrapping, and system service initialization. The project provides detailed guides on mobile performance, including strategies for reducing memory footprints, identifying memory leaks, and optimizing image decoding. It further covers Android inter-process communication using AIDL and the Binder kernel driver, as well as software architecture manuals