Practices

Sections

Pages

  • 3 2 1 Backup Strategy
    Explains the 3-2-1 data backup rule (three copies, two media types, one off-site), how to implement it, the questions to ask when choosing a solution, and related strategies such as 3-2-1-1-0 and 4-3-2.
  • Bank Transfer Payment
    Explains how to automatically confirm bank-transfer payments for orders by polling transaction history and matching a transfer-content syntax, and compares third-party services, direct bank APIs, and non-public APIs.
  • Case Study Quick Win Optimization
    Two real-world case studies showing how tiny changes, such as reordering one line of code and moving CORS headers to Cloudflare, cut CPU by 70% and data transfer by 63% on high-traffic systems.
  • Debugging Strategy And Practice
    Covers foundational debugging principles, advanced techniques for memory and concurrency problems, common debuggers, profilers and analyzers, and best practices for systematic debugging.
  • File Compression
    Practical advice on choosing a compression format and settings (RAR, 7z/LZMA2, zip, gzip/brotli, zstd, dictionary size, solid mode) based on file type and speed, ratio, and compatibility needs.
  • Hedged Request
    Explains how hedged requests reduce long-tail latency in distributed systems by sending a duplicate request to another replica after a p95 delay, with the trade-offs around idempotency and choosing the delay.
  • Instagram Like Photo System Design
    A system design walkthrough of an Instagram-like photo-sharing service covering requirements, capacity estimates, database design, newsfeed generation with hybrid push/pull, caching, and key generation.
  • Kafka DLQ And Retry
    Notes from a Golang Vietnam thread on Kafka consumer DLQ and retry design, covering which errors to retry, where delay lives, when to replay or drop, ordering, backpressure, and delivery semantics.
  • Outbox Pattern
    Explains how the Outbox Pattern with Change Data Capture (Debezium and Kafka) solves the dual-write problem in microservices, including the outbox table structure, duplicate handling, and eventual consistency.
  • Request Body Limit And Load Shedding
    Covers three ways to protect a system from overload and p99 degradation - gateway request body limits (with benchmark results), load shedding with overload detection methods, and hotspot mitigation via small caches and request collapsing.
  • Scaling A File Storage Backend
    A six-step evolution from a single file-storage server to a scalable backend: shared metadata, load balancing and autoscaling, service boundaries and gateway auth, direct upload with presigned URLs, asynchronous events, and caching, CDN, and rate limiting.
  • Search Engine
    An overview of how a search engine works, covering its crawler, indexer, query processor and ranker components, the request flow, common ranking algorithms, and key challenges.
  • Target Of Users In A Workspace
    Glossary of concepts and formulas for a workspace target and points system, such as goals, scenes, outputs, achievements, and working-day adjusted goals.
  • Task Scheduler System Design
    Walks through a system design interview for a task scheduler, covering requirements, scalability with message queues and priority queues, fault tolerance with retries and backoff, core components, and design trade-offs.
  • Top K Problem Heavy Hitters
    Compares solutions to the Top K heavy hitters problem at 10 billion views per day (Redis sorted sets, Count-Min Sketch, OLAP pipelines, batch jobs, SQL) and recommends a hybrid fast path plus slow path architecture.
  • YouTube Architecture
    Summarizes how YouTube scaled its backend to serve billions of users by putting Vitess on top of MySQL to enable horizontal scaling.