1. Designing a Rate-Limiting Systemhistorical

    A historical note comparing fixed windows, sliding windows, leaky buckets, and token buckets, with Go implementations.

  2. Designing an Open APIhistorical

    A historical note on authentication, signatures, replay protection, rate limiting, and IP allowlists for open APIs.

  3. Designing an Asynchronous Systemhistorical

    A historical note on asynchronous processing, event-driven design, and consistency/order concerns.

  4. Designing an Isolation Systemhistorical

    A historical note on storage, service, and resource isolation, including Set deployment.

  5. Designing a Circuit-Breaker Systemhistorical

    A historical note on circuit breaking, the circuit-breaker pattern, and its difference from rate limiting.

  6. Designing a Degradation Systemhistorical

    A historical note on service degradation, when to use it, and several degradation approaches.

  7. Designing Timeout and Retryhistorical

    A historical note on timeout duration, retryable errors, backoff, idempotency, and retry counts.

  8. Designing a Feature-Switch Systemhistorical

    A short historical note on feature switches and configuration-center implementation.

  9. Designing a Playbook Systemhistorical

    A very short historical note on predefined operational scenarios composed of multiple switches.

  10. Designing an Error Systemhistorical

    A historical note on error classification, error codes, context, propagation, logging, and caller-facing error handling.