Convert Figma logo to code with AI

binhnguyennus logoawesome-scalability

The Patterns of Scalable, Reliable, and Performant Large-Scale Systems

58,023
5,989
58,023
18

Top Related Projects

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

💯 Curated coding interview preparation materials for busy software engineers

A complete computer science study plan to become a software engineer.

323,302

😎 Awesome lists about all kinds of interesting topics

:books: Freely available programming books

Quick Overview

The "Awesome Scalability" repository is a curated list of resources on system design, distributed systems, and scalability. It serves as a comprehensive guide for developers and architects looking to build large-scale systems, covering topics from database sharding to load balancing and everything in between.

Pros

  • Extensive collection of high-quality resources on scalability and system design
  • Well-organized structure with clear categories for easy navigation
  • Regularly updated with new and relevant content
  • Includes both theoretical concepts and practical implementation guides

Cons

  • Can be overwhelming for beginners due to the vast amount of information
  • Some links may become outdated over time
  • Lacks in-depth explanations or tutorials for each topic
  • May not cover cutting-edge or emerging technologies as quickly as they appear

Note: As this is not a code library, the code example and quick start sections have been omitted as per the instructions.

Competitor Comparisons

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Pros of system-design-primer

  • Provides a comprehensive, structured approach to learning system design
  • Includes interactive coding exercises and examples
  • Offers a step-by-step guide for tackling system design interviews

Cons of system-design-primer

  • May be overwhelming for beginners due to its depth and breadth
  • Focuses primarily on interview preparation rather than real-world scenarios
  • Less frequently updated compared to awesome-scalability

Code Comparison

system-design-primer:

class LRUCache:
    def __init__(self, capacity):
        self.capacity = capacity
        self.cache = OrderedDict()

    def get(self, key):
        if key not in self.cache:
            return -1
        self.cache.move_to_end(key)
        return self.cache[key]

awesome-scalability:

No direct code examples provided. The repository focuses on curating links to external resources rather than providing code snippets.

The system-design-primer repository offers more hands-on coding examples, while awesome-scalability serves as a comprehensive collection of resources and articles on scalability topics. system-design-primer is better suited for those preparing for technical interviews, while awesome-scalability provides a broader overview of scalability concepts and real-world applications.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

Pros of developer-roadmap

  • Provides visual roadmaps for different tech roles, making it easier for beginners to understand career paths
  • Regularly updated with new content and technologies
  • Includes interactive versions of roadmaps on the project's website

Cons of developer-roadmap

  • Focuses more on breadth than depth, lacking detailed explanations for each topic
  • May overwhelm beginners with the sheer amount of information presented
  • Less emphasis on specific scalability concepts compared to awesome-scalability

Code comparison

While both repositories primarily consist of curated lists and resources, developer-roadmap includes some code for rendering interactive roadmaps:

developer-roadmap:

import { createRoadmap } from './roadmap-renderer';

const frontendRoadmap = createRoadmap({
  title: 'Frontend Developer',
  nodes: [/* ... */],
  connections: [/* ... */]
});

awesome-scalability doesn't include code snippets, as it's primarily a curated list of resources and articles on scalability topics.

💯 Curated coding interview preparation materials for busy software engineers

Pros of tech-interview-handbook

  • Focused specifically on technical interview preparation
  • Includes detailed explanations and examples for common interview topics
  • Offers practical advice on interview strategies and soft skills

Cons of tech-interview-handbook

  • Less comprehensive coverage of system design and scalability concepts
  • May not be as relevant for experienced developers seeking advanced topics
  • Limited focus on real-world implementation challenges

Code comparison

While both repositories primarily contain documentation rather than code, tech-interview-handbook includes some code snippets for algorithm explanations:

# tech-interview-handbook example (Binary Search)
def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

awesome-scalability doesn't typically include code snippets, focusing instead on high-level concepts and architectural patterns.

Summary

tech-interview-handbook is an excellent resource for interview preparation, offering detailed explanations and practical advice. However, it may not be as comprehensive for those seeking in-depth knowledge of scalability and system design. awesome-scalability, on the other hand, provides a broader overview of scalability concepts but lacks the specific interview focus and code examples found in tech-interview-handbook.

A complete computer science study plan to become a software engineer.

Pros of coding-interview-university

  • Comprehensive curriculum for computer science fundamentals and interview preparation
  • Structured learning path with clear goals and milestones
  • Includes hands-on coding practice and project suggestions

Cons of coding-interview-university

  • Primarily focused on interview preparation rather than real-world scalability challenges
  • May not cover the latest industry trends and technologies in depth
  • Less emphasis on system design and architecture compared to awesome-scalability

Code comparison

While both repositories don't primarily focus on code snippets, coding-interview-university includes some algorithm implementations:

# Example from coding-interview-university
def binary_search(list, item):
    low = 0
    high = len(list) - 1
    while low <= high:
        mid = (low + high) // 2
        guess = list[mid]
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
        else:
            low = mid + 1
    return None

awesome-scalability, on the other hand, focuses more on system design concepts and doesn't include specific code implementations.

Both repositories serve different purposes: coding-interview-university is ideal for those preparing for technical interviews and building a strong computer science foundation, while awesome-scalability is better suited for engineers looking to understand and implement scalable system architectures in real-world scenarios.

323,302

😎 Awesome lists about all kinds of interesting topics

Pros of awesome

  • Broader scope, covering a wide range of topics and technologies
  • Larger community and more frequent updates
  • More comprehensive and well-organized structure

Cons of awesome

  • Less focused on specific technical domains
  • May be overwhelming for users looking for targeted information
  • Requires more time to navigate and find relevant resources

Code comparison

Not applicable for these repositories, as they are curated lists of resources rather than code projects.

Summary

awesome-scalability is a specialized repository focused on system design and scalability topics, while awesome is a more general collection of curated lists covering various subjects. awesome-scalability provides in-depth resources for developers interested in building scalable systems, whereas awesome offers a broader range of topics for different areas of interest.

awesome-scalability is ideal for those specifically looking to improve their knowledge of system design and scalability concepts. On the other hand, awesome serves as a comprehensive starting point for exploring various technologies, tools, and resources across multiple domains.

Both repositories are valuable in their own right, catering to different needs and preferences of developers and technology enthusiasts. The choice between them depends on whether you're seeking specialized knowledge in scalability or a broader overview of various tech-related topics.

:books: Freely available programming books

Pros of free-programming-books

  • Extensive collection of free programming resources across various languages and topics
  • Regularly updated with community contributions
  • Well-organized structure with categories for different types of resources (e.g., books, courses, interactive tutorials)

Cons of free-programming-books

  • Lacks focus on specific technical concepts or system design principles
  • May not provide in-depth guidance on scalability and performance optimization
  • Some links may become outdated or broken over time

Code comparison

Not applicable for these repositories, as they primarily consist of curated lists and resources rather than code examples.

Additional notes

free-programming-books is a comprehensive resource for learning programming across various languages and topics, while awesome-scalability focuses specifically on system design, scalability, and performance optimization. The former is more suitable for beginners and those looking for general programming knowledge, while the latter is tailored for developers and architects interested in building large-scale systems.

awesome-scalability provides a more focused approach to understanding scalability concepts, with links to articles, papers, and case studies. In contrast, free-programming-books offers a broader range of resources for general programming education.

Both repositories are valuable in their own right, catering to different aspects of software development and engineering education.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Logo

An updated and organized reading list for illustrating the patterns of scalable, reliable, and performant large-scale systems. Concepts are explained in the articles of prominent engineers and credible references. Case studies are taken from battle-tested systems that serve millions to billions of users.

If your system goes slow

Understand your problems: scalability problem (fast for a single user but slow under heavy load) or performance problem (slow for a single user) by reviewing some design principles and checking how scalability and performance problems are solved at tech companies. The section of intelligence are created for those who work with data and machine learning at big (data) and deep (learning) scale.

If your system goes down

"Even if you lose all one day, you can build all over again if you retain your calm!" - Thuan Pham, former CTO of Uber. So, keep calm and mind the availability and stability matters!

If you are having a system design interview

Look at some interview notes and real-world architectures with completed diagrams to get a comprehensive view before designing your system on whiteboard. You can check some talks of engineers from tech giants to know how they build, scale, and optimize their systems. Good luck!

If you are building your dream team

The goal of scaling team is not growing team size but increasing team output and value. You can find out how tech companies reach that goal in various aspects: hiring, management, organization, culture, and communication in the organization section.

Community power

Contributions are greatly welcome! You may want to take a look at the contribution guidelines. If you see a link here that is no longer maintained or is not a good fit, please submit a pull request!

Many long hours of hard work have gone into this project. If you find it helpful, please share on Facebook, on Twitter, on Weibo, or on your chat groups! Knowledge is power, knowledge shared is power multiplied. Thank you!

Content

Principle

Scalability

Availability

Stability

Performance

Intelligence

Architecture

Interview

Organization

Talk

A Piece of Cake

Roses are red. Violets are blue. Binh likes sweet. Treat Binh a tiramisu? :cake: