reference/principles.md

# Principles

01 /

make boundaries obvious

Systems should make ownership and data flow understandable.

02 /

design for failure

Queues, retries, observability, idempotency, and rollout behavior are part of the system.

03 /

stay close to implementation

Architecture decisions improve when the person making them understands code and production behavior.

04 /

optimize for other engineers

Good abstractions remove work without hiding important behavior.