System Design
This skill assists in designing systems and evaluating architectural decisions.
Install
npx promptshop add system-designDetails
What This Skill Does
This skill assists in designing systems and evaluating architectural decisions. It guides users through requirements gathering, high-level design, deep dives into specific components, and considerations for scale and reliability. It's useful for software architects and senior engineers.
When to Use
Design a new software system. Evaluate architectural trade-offs. Create system design documents. Plan for scaling and reliability. Model data flow and API contracts. Choose appropriate storage solutions.
Key Features
Provides a structured system design framework. Covers requirements gathering and analysis. Helps design data models and API endpoints. Addresses caching and queue design. Analyzes trade-offs between design choices. Generates design documents with diagrams.
Manual Installation
System Design
Help design systems and evaluate architectural decisions.
Framework
1.
Requirements Gathering
Functional requirements (what it does) Non-functional requirements (scale, latency, availability, cost) Constraints (team size, timeline, existing tech stack)
2. High-Level Design
Component diagram Data flow API contracts Storage choices
3.
Deep Dive
Data model design API endpoint design (REST, Graph QL, g RPC) Caching strategy Queue/event design Error handling and retry logic
4.
Scale and Reliability
Load estimation Horizontal vs. vertical scaling Failover and redundancy Monitoring and alerting
5. Trade-off Analysis
Every decision has trade-offs. Make them explicit. Consider: complexity, cost, team familiarity, time to market, maintainability
Output
Produce clear, structured design documents with diagrams (ASCII or described), explicit assumptions, and trade-off analysis. Always identify what you'd revisit as the system grows. System Design