system-design

Design scalable software architectures for web services and distributed systems.

2|Updated Oct 1, 2024
One-click install
npx skills add https://github.com/ZeiZel/dotfiles --skill system-design-zeizel
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: system-design
Source: https://github.com/ZeiZel/dotfiles/tree/main/.claude/skills/system-design
Command: npx skills add https://github.com/ZeiZel/dotfiles --skill system-design-zeizel

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Design teams and engineers often struggle to reason about large-scale systems, leading to inconsistent architectures and missed trade-offs. This Skill provides a structured approach to design scalable, robust architectures with clear guidance across domains.

Core Features & Use Cases

  • Structured design process: Requirements clarification, high-level design, deep dive, and trade-off analysis.
  • Guided patterns: Scaling, caching, messaging, reliability and capacity estimation templates.
  • Use cases: Web services, data pipelines, and distributed systems requiring predictable performance and resilient operation.

Quick Start

Outline a scalable system design outline for a web service given a set of requirements.

Frequently Asked Questions about system-design

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

FAQPage Schema
How do I design scalable architectures for distributed systems?

System design for web services involves requirements clarification, high-level component definition, and trade-off analysis. You define database choices, caching strategies, and messaging patterns to support informed design decisions for predictable performance.

What is the best way to structure a system design process for a web service?

The best way to structure a system design process is through requirements clarification, high-level design, deep dive, and trade-off analysis. This method provides clear guidance for designing scalable web services across domains.

Can I use this approach to design data pipelines and messaging patterns?

Yes, this approach applies to designing data pipelines and messaging patterns. It defines components, data flows, database choices, and messaging patterns to ensure robust operation under varying load and reliability requirements.

How do I analyze failure modes and trade-offs in distributed systems?

Analyze failure modes and trade-offs in distributed systems by applying structured design templates for scaling, caching, and reliability. This process supports informed decisions regarding capacity estimation and resilient operation.

Does this system design approach work for capacity estimation and caching strategies?

Yes, this system design approach works for capacity estimation and caching strategies. It provides guided templates for scaling, caching, messaging, and reliability to support predictable performance and resilient operation.