ARCHITECTURE LIBRARY / PRINCIPLES

Architecture principles

Ten opinionated, pragmatic design heuristics.

Nishant — architecture principles v0.1

These are preferred heuristics, not immutable laws. Explain exceptions in an ADR.

  1. Start with outcomes and responsibility. Define the business capability, owner and intended result before picking a technology.
  2. Make boundaries explicit. Name trust, ownership, state, tenancy and deployment boundaries.
  3. Keep core invariants deterministic. Models can interpret and propose; validated domain logic owns committed business state.
  4. Expose capabilities, not database tables. Give consumers meaningful versioned contracts.
  5. Design for failure before scale. Idempotency, timeouts, recovery, compensation and traceability belong in the first design.
  6. Govern where work executes. Declared policy is not a substitute for enforced permissions at a side effect.
  7. Separate shared technology from shared semantics. Reuse infrastructure when beneficial, but do not silently conflate data contracts or SLOs.
  8. AI accelerates change; engineering proves correctness. Generation is not independent verification.
  9. Measure outcomes rather than activity. Observe task quality, business impact, latency, risk and unit economics.
  10. Architecture is a living set of decisions. Version diagrams, supersede decisions explicitly and revisit when assumptions change.