Best of Distributed SystemsJune 2024

  1. 1
    Article
    Avatar of communityCommunity Picks·2y

    How Does Facebook Manage to Serve Billions of Users Daily?

    Understanding how Facebook manages to serve billions of users daily involves exploring their use of caching systems, particularly Memcache. Cache stores data to anticipate future requests, enabling quicker data retrieval compared to databases. Facebook's Memcache optimizes performance through techniques like parallel requests with DAG, batching requests, and leasing to prevent stale data and manage heavy loads. These strategies allow efficient handling of massive user requests while maintaining data integrity.

  2. 2
    Article
    Avatar of freecodecampfreeCodeCamp·2y

    How to Use Time To Live in Event-Driven Architecture in AWS

    Time to Live (TTL) is a concept used to determine the lifespan of data in a distributed system. It is beneficial for ephemeral data like cached content, analytic metrics, and short-lived social media content. However, it is less useful for permanent data like media for streaming platforms or bank transactions. AWS services like SQS, S3, and DynamoDB support TTL, allowing developers to automate data expiration and efficiently manage resources. TTL can also be integrated with event-driven architectures to execute actions upon data expiration.

  3. 3
    Article
    Avatar of gcpGoogle Cloud·2y

    Systems engineering learning resources to become an SRE

    Learn about systems engineering, including its differences from SRE and software engineering. Explore best practices for designing large systems and how to apply them. Discover resources like papers, workshops, talks, and books to further your knowledge in systems engineering.

  4. 4
    Video
    Avatar of t3dotggTheo - t3․gg·2y

    Queues

    Queuing can be complex, but it's essential for managing requests in distributed systems and event-driven applications. Sam Rose, in collaboration with Encore, has created an interactive blog to explain common queuing strategies. The post covers why queues are useful, compares different types of queues, and introduces an extra strategy to prevent dropping priority requests. Detailed visualizations demonstrate how FIFO, LIFO, and priority queues work, including the use of active queue management to improve performance. This comprehensive guide aims to make understanding queues easier and more practical.

  5. 5
    Article
    Avatar of ballerinaBallerina·2y

    Simplifying Distributed Systems with NATS and Ballerina

    Learn how to simplify distributed systems by combining Ballerina and NATS. The post guides you through setting up the environment, creating a NATS connection, publishing and subscribing to messages, and implementing a real-life use case involving order processing microservices. It highlights the strengths of Ballerina for writing integrations and microservices, and the efficiency and reliability of NATS for messaging.

  6. 6
    Article
    Avatar of hnHacker News·2y

    The Problem with Lying is Keeping Track of All the Lies

    The post discusses the challenges of lying and keeping track of lies, drawing parallels to weak isolation in programming and its impact on productivity. It explores the concept of database consistency and the importance of strong isolation. The post also touches on the difficulties of achieving strict serializability in stream processing.

  7. 7
    Article
    Avatar of communityCommunity Picks·2y

    Consensus is Harder Than It Looks

    The post discusses the challenges involved in building consensus systems for highly-available systems, including determinism, monitoring and control, and the need for strong consistency. Consensus is an important building block for high availability.