1.Methodology
System Design · 8 notes
- Business System Design Methodhistorical
A repeatable system-design method: clarify requirements, quantify scale, define data and invariants, identify bottlenecks, choose components, and validate failure modes.
- Handling Very Large Data Setshistorical
Strategies for large-scale data: partitioning, external sorting, hashing, Bloom filters, streaming aggregation, distributed storage, and choosing algorithms from access patterns.
- Designing Highly Available Systemshistorical
Availability engineering through redundancy, failure domains, timeouts, retries, load shedding, replication, failover, graceful degradation, observability, and recovery testing.
- Designing High-Concurrency Systemshistorical
A practical path from reducing work per request to caching, horizontal scaling, partitioning, asynchronous processing, backpressure, and hotspot control.
- Data Modeling for System Designhistorical
Choosing data models from invariants and access patterns: relational, document, key-value, search/index, event log, graph, denormalization, and derived views.
- Refactoringhistorical
Refactoring as behavior-preserving design improvement, with test protection, incremental changes, observability, and boundaries between cleanup and architectural rewrite.
- Scaling Serviceshistorical
Vertical vs. horizontal scaling, statelessness, load balancing, autoscaling signals, warm-up, downstream capacity, and stateful partitioning.
- Technical Planning for Software Systemshistorical
A methodology for technical planning: business goals, current bottlenecks, target architecture, risk reduction, migration stages, observability, and measurable outcomes.