system-design

Design scalable distributed systems with load balancing, caching, and message queues.

5|Updated Jan 20, 2026
One-click install
npx skills add https://github.com/mohamedgshoaib/reway --skill system-design-mohamedgshoaib
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: system-design
Source: https://github.com/mohamedgshoaib/reway/tree/main/.agents/skills/system-design
Command: npx skills add https://github.com/mohamedgshoaib/reway --skill system-design-mohamedgshoaib

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill addresses the complexity of architecting large-scale distributed systems by providing a structured, repeatable framework for design, estimation, and component selection.

Core Features & Use Cases

  • Structured Design Process: Follows a proven four-step methodology (Scope, High-Level, Deep Dive, Wrap-up) to ensure designs are comprehensive and defensible.
  • Back-of-the-Envelope Estimation: Provides formulas and reference numbers for calculating QPS, storage, and bandwidth requirements.
  • Building Block Library: Offers clear guidance on when and why to use load balancers, caches, message queues, and sharding strategies.
  • Use Case: Use this when preparing for a system design interview or when you need to evaluate the scalability and reliability of a proposed architecture for a new service.

Quick Start

Use the system design skill to outline a high-level architecture and capacity estimate for a URL shortening service.

Frequently Asked Questions about system-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design a scalable distributed system architecture?

To design a scalable distributed system, follow a structured four-step methodology covering scope, high-level design, deep dive, and wrap-up to comprehensively address functional and non-functional requirements.

What is back-of-the-envelope estimation in system design?

Back-of-the-envelope estimation calculates QPS, storage, and bandwidth requirements using reference formulas, enabling accurate capacity planning for proposed distributed architectures.

When should I use caching, load balancing, and message queues?

Use caching, load balancing, and message queues during the deep dive phase of system design to address scalability bottlenecks, improve reliability, and manage asynchronous task processing effectively.

How do I prepare for a system design interview?

Prepare for a system design interview by practicing a repeatable four-step framework that scopes requirements, drafts high-level architecture, estimates capacity, and selects components like sharding strategies.

What is the best way to evaluate database scaling and sharding strategies?

Evaluating database scaling and sharding strategies requires estimating capacity needs and mapping them against building block guidance to determine when specific scaling approaches are necessary for reliability.