Architecture rules¶
Total rules: 26
Rules¶
ECO-ARC-ARCH-001 — Over-provisioned compute¶
Sustained low utilization suggests oversized instances or replicas.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-002 — Always-on low-traffic service¶
Services running 24/7 with low utilization create baseline waste.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-003 — Long synchronous dependency chain¶
Synchronous call chains amplify latency and failure propagation.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-004 — No autoscaling policy¶
Without scaling policies, systems drift into waste or fragility.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-005 — No resource limits in containers¶
Missing CPU/memory limits causes noisy-neighbor waste and instability.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-006 — Unbounded message queues¶
Queues without bounds hide backpressure and create runaway cost.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-007 — Batch jobs run too frequently¶
Over-scheduling batch jobs wastes compute and increases cost.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-008 — Hot storage used for cold data¶
Keeping cold data in hot tiers wastes storage spend and energy.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-009 — Duplicate services performing the same work¶
Duplicate services increase operational load and waste compute.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-010 — No observability on utilization¶
Without utilization metrics, waste is invisible and persistent.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-011 — Excessive replica counts¶
Too many replicas increase baseline waste.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-012 — No graceful degradation strategy¶
Without degradation, overload becomes failure and waste.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-013 — No caching layer for high-read workloads¶
High-read systems without caching waste CPU and DB capacity.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-014 — Stateful services blocking scaling¶
Stateful designs make scaling expensive and fragile.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-015 — Tight coupling across bounded contexts¶
Coupling increases coordination cost and failure propagation.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-016 — Multi-tenant workloads without isolation¶
Lack of isolation causes noisy-neighbor waste and instability.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-017 — Inefficient container image size¶
Large images increase pull time and wasted storage/transfer.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-018 — No cold-start optimization¶
Cold starts inflate latency and may force overprovisioning.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-019 — Overly aggressive autoscaling thresholds¶
Aggressive scaling can cause thrash and wasted churn.
- Category: ARC
- Family: ARCH
ECO-ARC-ARCH-020 — Underutilized GPU/accelerator resources¶
Accelerators running idle waste significant power and cost.
- Category: ARC
- Family: ARCH
ECO-CMP-JAVA-003 — Thread pool misconfiguration¶
Incorrect thread pool sizing can waste CPU or cause latency collapse.
- Category: CMP
- Family: JAVA
ECO-CMP-JAVA-006 — Missing connection pooling¶
No pooling increases connection churn and DB overhead.
- Category: CMP
- Family: JAVA
ECO-CMP-JAVA-009 — Large heap allocation spikes¶
Heap spikes increase GC pauses and tail latency.
- Category: CMP
- Family: JAVA
ECO-CMP-PY-016 — No connection pooling¶
Lack of pooling increases connection churn, latency, and DB load.
- Category: CMP
- Family: PY
ECO-INF-DOCKER-002 — Oversized base image¶
Heavy base images increase transfer, storage, and patching footprint without improving runtime value.
- Category: Infrastructure
- Family: Docker
ECO-INF-K8S-004 — Heavy or redundant sidecars¶
Sidecars add useful capabilities, but they also add CPU, memory, storage, and network overhead.
- Category: Infrastructure
- Family: Kubernetes