systemdesign/concepts
Cost Tradeoffs in System Design
Tradeoffs for Lower Cost:
- Vertical Scaling → Higher cost, lower complexity vs. horizontal scaling.
- Lower Redundancy → Reduces availability (e.g., fewer hosts, lower replication).
- Cheaper Data Center → Higher latency due to distance from users.
Types of Costs to Consider
Implementation & Monitoring Costs:
- Balance cost of implementation vs. value of each non-functional requirement.
- Monitoring cost increases if immediate alerts are needed.
- Lower urgency = lower monitoring cost.
Maintenance Costs:
- Production problems vary in urgency—don’t over-monitor.
- Software ages:
- Libraries/services get deprecated.
- Keep dependencies modular and easy to replace.
Third-Party Dependency Risks
- Evaluate:
- Update risk (future compatibility issues).
- Control risk (lack of control over third-party services).
- Replacement plan if a dependency is shut down or becomes insecure.
Decommissioning Costs
- Reasons to decommission:
- Shift in priorities.
- Low usage vs. high maintenance cost.
- Plan for:
- User data export (CSV/text formats).
- Shutdown procedures.