Best of Distributed SystemsJune 2025

  1. 1
    Article
    Avatar of techworld-with-milanTech World With Milan·48w

    What I learned from the book Designing Data-Intensive Applications

    A comprehensive review of Martin Kleppmann's "Designing Data-Intensive Applications" after two complete readings. The book provides foundational knowledge about distributed systems, covering reliability, scalability, and maintainability principles. Key topics include data models (relational vs document vs graph), storage engines (B-trees vs LSM-trees), replication strategies, partitioning, transactions, and stream processing. The review highlights the book's strengths in explaining trade-offs and connecting theory to practice, while noting limitations like outdated examples and dense theoretical content. Recommended for experienced engineers working with data-intensive systems.

  2. 2
    Video
    Avatar of bytebytegoByteByteGo·47w

    7 System Design Concepts Explained in 10 Minutes

    Seven fundamental concepts power reliable distributed systems: CAP theorem forces choosing between consistency and availability during network partitions, eventual consistency enables high performance through delayed convergence, load balancers distribute traffic using Layer 4 or Layer 7 strategies, consistent hashing minimizes data movement when scaling nodes, circuit breakers prevent cascade failures by blocking requests to failing services, rate limiting protects against overload using token bucket or sliding window algorithms, and monitoring provides visibility through metrics, logs, traces, and events to maintain system health.

  3. 3
    Article
    Avatar of threedotslabsThree Dots Labs·50w

    Event Driven Architecture: The Hard Parts

    Event-driven architecture offers powerful benefits like scaling and decoupling but comes with significant challenges. Key issues include debugging async systems without proper observability, handling eventual consistency, preventing message loss through the outbox pattern, and designing events that avoid tight coupling. The architecture requires idempotent handlers to manage duplicate message delivery, proper dead letter queue handling, and careful consideration of message ordering. While EDA can solve real problems, it adds complexity that isn't always justified - sometimes synchronous systems or monoliths are better choices.

  4. 4
    Article
    Avatar of medium_jsMedium·47w

    Why We Replaced Kafka with gRPC for Service Communication

    A development team replaced Kafka with gRPC for synchronous service communication in their loan servicing platform after experiencing issues with debugging, latency, and operational complexity. While keeping Kafka for appropriate use cases like audit logs and fan-out patterns, they found gRPC provided better performance (70-80% latency reduction), easier debugging, and simpler infrastructure management for request-response interactions. The key lesson was using each tool for its intended purpose rather than forcing one solution everywhere.

  5. 5
    Article
    Avatar of bytebytegoByteByteGo·50w

    EP166: What is Event Sourcing?

    Event sourcing is a design paradigm that stores events leading to state changes rather than current state data, providing determinism and recoverability. The approach uses an append-only event store with sequenced events to rebuild application state. The newsletter also covers software deployment pipelines, data lake architecture, Netflix's distributed counter implementation, and TCP handshake mechanics.

  6. 6
    Article
    Avatar of habrhabr·48w

    What May Surprise You About UUIDv7

    UUIDv7 is a 128-bit identifier inspired by ULID that combines timestamps with random data, offering superior performance and functionality compared to traditional auto-increment IDs and other identifier types. Key advantages include cryptographically secure generation, monotonicity guarantees, equivalent performance to bigint while eliminating key collision issues, and the ability to hide creation timestamps through offset options. The format supports various implementation strategies across databases like PostgreSQL and ClickHouse, with optimal storage achieved through binary format rather than string representation.

  7. 7
    Article
    Avatar of programmingdigestProgramming Digest·47w

    Everything I know about good system design

    System design is about assembling services using primitives like databases, caches, and queues. Good design looks underwhelming and focuses on minimizing stateful components, using databases effectively with proper indexing, handling slow operations through background jobs, implementing strategic caching, and designing for failure with retries and circuit breakers. The key is using boring, well-tested components correctly rather than clever tricks.

  8. 8
    Article
    Avatar of codemotionCodemotion·48w

    How Netflix Scales to 270 Million Users with Java and Microservices

    Netflix serves 270 million users through a sophisticated microservices architecture built primarily with Java. The platform splits operations between a control plane on AWS handling user interactions and recommendations, and a proprietary CDN called Open Connect with 17,000+ servers worldwide for content delivery. Key innovations include circuit breaker patterns with Hystrix, service discovery with Eureka, reactive programming with RxJava, and chaos engineering practices. The architecture employs polyglot persistence across multiple databases, extensive observability with petabytes of telemetry data, and hundreds of machine learning models for personalized recommendations.

  9. 9
    Article
    Avatar of awegoAwesome Go·50w

    Why I’m excited about Go for agents

    Go's concurrency model with goroutines and channels makes it well-suited for building AI agents that need to handle long-running, expensive operations with high concurrency. The language's lightweight goroutines, channel-based communication, centralized cancellation with context.Context, and expansive standard library provide advantages over Python and Node.js for agent architectures. While Go lacks extensive ML library support compared to Python, its performance characteristics and concurrency primitives align well with the stateful, concurrent nature of agent workloads.

  10. 10
    Video
    Avatar of awesome-codingAwesome·49w

    A way better alternative to microservices... Self-contained systems explained

    Self-contained systems (SCS) offer a middle ground between monolithic and microservices architectures by creating independent vertical slices that include their own UI, backend logic, and database without runtime dependencies. Unlike microservices that often create distributed complexity for systems that don't need it, SCS maintains simplicity while providing modularity through business-aligned boundaries. Communication between systems is minimized and handled through UI links or asynchronous messaging. This approach eliminates common microservices problems like circuit breakers, distributed tracing, and complex DevOps while avoiding the monolithic frontend antipattern.

  11. 11
    Article
    Avatar of restateRestate·51w

    Building stateful serverless applications with Knative and Restate

    Restate is an open source Durable Execution Engine that enables building stateful serverless applications on Knative by handling state persistence, service orchestration, and failure recovery automatically. The platform records execution progress and can suspend/resume applications, allowing Knative services to scale to zero during waiting periods. Developers write sequential code that looks like regular RPC services while Restate manages distributed systems complexities like retries, state consistency, and crash recovery. The article demonstrates building a user signup flow with Virtual Objects for state management and service orchestration patterns.