# Distributed Systems Fundamentals

## Non-Negotiables
- define failure domains
- know consistency needs per workflow
- prefer explicit idempotency for retried commands/events
- design for degraded modes, not perfect availability

## Core Questions
- request/response, event-driven, batch, or hybrid?
- stateful or stateless scaling?
- sync orchestration or async choreography?
- latency-critical or throughput-oriented?
