system-designer

Design distributed system topology, scalability patterns, and non-functional requirements for software architectures.

Updated Aug 20, 2026
One-click install
npx skills add https://github.com/rhorba/RestoLedger --skill system-designer-rhorba
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: system-designer
Source: https://github.com/rhorba/RestoLedger/tree/main/skills/system-designer
Command: npx skills add https://github.com/rhorba/RestoLedger --skill system-designer-rhorba

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? It turns vague scalability and reliability concerns into concrete system designs by capturing NFRs, estimating capacity, and producing topology diagrams and decision records before any code is written. ## Core Features & Use Cases - NFR Capture and SLA Planning: Templates for availability, latency, throughput, RTO/RPO, plus an SLA-to-downtime reference table. - Topology and Data Flow Design: Layered templates covering CDN, load balancers, API gateways, services, queues, and observability stacks. - Capacity Estimation and Scalability Patterns: Quick formulas for peak RPS and storage growth, with guidance on when to apply caching, sharding, read replicas, and message queues. - Use Case: When planning a new order-processing platform, use it to lock down a 99.9% availability target, estimate peak RPS from DAU, and produce a System Design Decision Record justifying a message queue over synchronous calls. ## Quick Start Ask the assistant to design the system topology and NFRs for a web application expecting 50,000 daily active users.

Frequently Asked Questions about system-designer

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

FAQPage Schema
How do I design a scalable system architecture for a web application?

Start by capturing NFRs (availability, latency, throughput, data volume), then estimate peak RPS from DAU using the capacity formula. Apply scalability patterns only when justified: read replicas for read-heavy loads, caching for repeated queries, and queues for spiky writes.

How do I choose between REST, message queues, and event buses for service integration?

Use REST for synchronous request-response CRUD operations, message queues to decouple producers from consumers under spiky load, and event buses when one event must fan out to multiple consumers such as audit logging. Webhooks fit external event notifications like payment callbacks.

What availability SLA should I target for my system?

Default to 99.9% (8.7 hours downtime per year) using active-passive failover with health checks, unless the business explicitly requires more. Each additional nine, such as 99.99% requiring active-active multi-AZ, increases cost and complexity exponentially.

When should I add caching, sharding, or read replicas to my database?

Add a Redis cache when identical queries repeat and latency is too high, read replicas when reads exceed roughly 70% of database traffic, and sharding only when a single database exceeds about 1TB or 100k writes per minute. Premature application of these patterns violates the YAGNI principle.

What are the limitations of high-level system design without NFRs?

Designing without locked-down NFRs leads to over-engineering or under-provisioning, since decisions like multi-region deployment cannot be justified without availability and recovery targets. Always capture latency, throughput, RTO, and RPO before drawing topology diagrams.