Design Principles for Sustainable Architecture (SD1–SD8)
The eight technical design principles translate the Sustainability Principles (SP1–SP7) into concrete architecture requirements and decisions. Each design principle is linked to specific WAF-SUS controls and shows practical implications for cloud architectures.
SD1 – Prefer ARM/Graviton
Tagline: 30–40% better energy efficiency without loss of functionality.
Technical Background
ARM-based processors (AWS Graviton2/3, Azure Ampere Altra, GCP T2A) achieve significantly better performance-per-watt ratios compared to equivalent x86 processors due to their RISC architecture. At AWS, Graviton3 (m7g, c7g, r7g) is 25% more energy-efficient than Graviton2.
| Instance Family | x86 Equivalent | Energy Efficiency |
|---|---|---|
|
|
~40% better performance/watt |
|
|
~35% better CPU performance/watt |
|
|
~40% better for memory workloads |
|
|
~20% better for burst workloads |
Lambda arm64 (Graviton2) |
Lambda x86_64 |
~20% less energy per invocation |
SD2 – Use Managed Serverless for Bursty Workloads
Tagline: No idle compute through scale-to-zero.
Technical Background
Serverless compute (AWS Lambda, Azure Functions, GCP Cloud Functions/Run) differs from container-based compute through the scale-to-zero principle: when no requests arrive, no resources run — no energy is consumed.
For workloads with strong burst profiles (APIs with day/night rhythm, event triggers, webhook handlers), serverless is the more energy-efficient choice compared to always-on containers or EC2 instances.
When Serverless, When Containers?
| Characteristic | Serverless (Lambda/Functions) preferred | Container/EC2 preferred |
|---|---|---|
Traffic profile |
Burst, irregular, event-driven |
Consistently high, predictable |
Latency requirement |
< 100ms cold start acceptable |
Sub-10ms consistently required |
Runtime |
Short (< 15 minutes) |
Long-running (background worker) |
Energy |
Pay-per-use; zero idle |
Idle energy at low utilization |
SD3 – Time-Shift Batch Workloads to Low-Carbon Windows
Tagline: Same load — 20–60% less CO₂ through the right timing.
Technical Background
The carbon intensity of the electricity grid varies considerably depending on time of day and season:
-
Solar: Peaks at midday, falls to zero at night → higher intensity in early morning/evening without solar
-
Wind: Variable, but statistically stronger at night in many regions
-
Base load: Coal/gas often has a higher proportional share at night in coal-dependent regions
The Green Software Foundation calls this temporal shifting: shifting batch jobs to the time window with the lowest carbon intensity.
Implementation Options
| Method | Description | Tool |
|---|---|---|
Fixed Off-Peak Scheduling |
Jobs shifted to 22:00–06:00 UTC; statistically lower |
EventBridge, Cron, Cloud Scheduler |
Flexible Windows |
EventBridge Flexible Time Window ±2h around target time |
|
Dynamic Carbon Scheduling |
Real-time carbon intensity API determines execution time |
electricityMaps API, WattTime API |
SD4 – Cache Aggressively to Reduce Compute Cycles
Tagline: A cached response is the most energy-efficient response.
Technical Background
Caching is the most effective measure for reducing compute energy per delivered response. A CDN hit for a static page consumes a fraction of the energy of an origin hit that triggers database queries, application server compute and network egress.
Cache Levels and Sustainability Impact
| Cache Level | Implementation | Sustainability Impact |
|---|---|---|
CDN (Edge) |
CloudFront, Azure CDN, Cloud CDN |
Eliminates long-haul network + origin compute for cached content |
Application Cache |
Redis/Elasticache, Memcached |
Eliminates repeated DB queries; 10–100x energy reduction per cache hit |
Query Result Cache |
DB query cache, materialized views |
Heavy aggregations computed only once |
Browser Cache |
Cache-Control headers (max-age, ETag) |
Client-side; eliminates network request entirely |
SD5 – Minimize Data Transfer
Tagline: Every byte transfers energy — transmit as little as possible.
Technical Background
Network energy arises proportional to data volume: switch energy, router energy, undersea cable energy, last-mile energy. Cross-region transfers consume more energy than same-region transfers (more network hops, greater distance).
Concrete Measures
-
HTTP compression: gzip/brotli reduces text payloads by 70–90%
-
VPC endpoints: AWS service traffic stays within the AWS backbone; no internet gateway
-
Same-region co-location: Databases and application servers in the same AZ
-
Field filtering: GraphQL, OData $select, sparse fieldsets; only transmit requested fields
-
Binary protocols: Protocol Buffers, MessagePack instead of JSON for internal services (20–50% smaller)
SD6 – Store Only What You Need
Tagline: Storage lifecycle policies are sustainability controls.
Technical Background
Data storage consumes energy proportional to volume and tier: hot storage (S3 Standard, Premium SSD) consumes more energy per GB than cold storage (Glacier, Archive, Cool Tier). Infinite retention in hot storage tiers is therefore continuous energy waste.
Lifecycle Strategy
| Data Category | Lifecycle Rule | WAF-SUS Reference |
|---|---|---|
Operational logs |
90 days Standard → delete; or 90d Standard → 365d Glacier → delete |
WAF-SUS-050 |
Business data |
30d Standard → 90d IA → 365d Glacier → expire per policy |
WAF-SUS-050 |
Audit/CSRD data |
365d Standard → Glacier → 7 years (CSRD obligation) → delete |
WAF-SUS-090 |
Temporary data (build artifacts, caches) |
7–30 days → auto-delete |
WAF-SUS-050 |
Backups |
Generation-based (e.g. 7 daily, 4 weekly, 12 monthly) → auto-expire |
WAF-SUS-050 |
SD7 – Optimize Algorithms Before Scaling Hardware
Tagline: An efficient algorithm is greener than more hardware.
Technical Background
Algorithmic complexity has a direct impact on energy consumption. An algorithm with O(n²) complexity running on 10,000 elements performs 100 million operations — an O(n log n) algorithm only ~133,000. This factor of 750 directly translates into CPU time and energy consumption.
Practical Optimization Levers
| Pattern | Sustainability Impact |
|---|---|
Eliminate N+1 queries |
100 DB queries to 1 bulk query → 99% database energy reduction for this code path |
Pagination instead of full table scans |
Transfer and process only the first 20 rows instead of 10,000 |
Indexes for frequent queries |
Index hit instead of full table scan → 100–1000x faster, proportionally less energy |
Batch processing |
100 items in one Lambda invocation instead of 100 separate invocations → 99% less cold-start energy |
Lazy loading |
Load data only when needed; do not eagerly load all associations upfront (ORM eagerness) |
SD8 – Choose Regions by Carbon Intensity, Not Just Latency
Tagline: Green energy is an architecture parameter — not a luxury.
Technical Background
Regions differ considerably in their carbon intensity (gCO₂eq/kWh):
| Region (AWS) | Location | Renewable Energy (approx.) | CO₂ Intensity |
|---|---|---|---|
|
Stockholm, Sweden |
~95% (hydro/wind) |
Very low |
|
Dublin, Ireland |
~80% (wind) |
Low |
|
Oregon, USA |
~89% (hydro/wind) |
Low |
|
Frankfurt, Germany |
~60% (wind/solar/mix) |
Medium |
|
N. Virginia, USA |
~40% (mix) |
Medium-high |
|
Hong Kong |
~25% (mix with coal) |
High |
Summary of Design Principles
| Principle | Short form | Core Decision | Primary Control |
|---|---|---|---|
SD1 |
ARM First |
Graviton/ARM as default; x86 only with justification |
WAF-SUS-020 |
SD2 |
Serverless for Bursts |
Scale-to-zero for event workloads |
WAF-SUS-040 |
SD3 |
Time-Shift Batch |
Off-peak scheduling + carbon-aware APIs |
WAF-SUS-060 |
SD4 |
Cache Aggressively |
CDN + app cache + query cache |
WAF-SUS-080 |
SD5 |
Minimize Transfer |
Compression + VPC endpoints + same-region |
WAF-SUS-080 |
SD6 |
Store Only Needed |
Lifecycle policies everywhere; data minimization |
WAF-SUS-050 |
SD7 |
Algorithm First |
Efficiency before hardware; eliminate N+1 |
WAF-SUS-070 |
SD8 |
Green Region |
Carbon intensity as an architecture parameter |
WAF-SUS-030 |