Design for performance, availability and scalability
- ensure response times meet user needs, and critical services are highly available
- support zero‑downtime deployments for planned and unplanned maintenance
- use distributed architectures, assume failure will happen, handle errors gracefully, and monitor performance and behaviour actively
- establish architectures that supports new technology insertion with minimal disruption to existing programs and services
- control technical diversity; design systems based on modern technologies and platforms already in use