# 📐 Куб выживания (The Survival Cube)

«Куб выживания» — это первый и главный графический артефакт **AfRel**. Он служит для стратегического позиционирования: показывает, где система находится сейчас и куда она должна прийти с точки зрения ресурсных ограничений.

## Назначение

Куб выживания — это трёхмерная система координат для описания состояния системы и её целей.

Он позволяет:

* Зафиксировать текущее состояние системы в измеримых величинах.
* Определить целевое состояние как вектор (или траекторию) движения.
* Визуализировать стратегию выживания: сжатие, расширение, улучшение качества или их комбинации.

## Оси координат

### X: Количество (Scale, Volume)

* число обслуживаемых сущностей (пользователи, сервисы, запросы, контракты).
* Единицы: штуки, **RPS**, строки кода, количество модулей.
* Может быть сжатием (уменьшение X) или расширением (увеличение X).

### Y: Качество (Quality, Density)

* эффективность на единицу количества.
* Единицы: `latency` (мс),  `throughput` (**RPS**),  `availability` (%),  `error rate` (%),  `MTBF` .
* Повышение Y = улучшение свойств, понижение Y = деградация.

### Z: Ресурсы/Деньги (Resources/Money)

* стоимость достижения цели или поддержания состояния.
* Единицы: доллары, человеко-часы, затраты на облако, **ROI**.
* Отрицательный Z (убыток, инвестиции) допустим, но требует плана возврата.

## Точки и векторы

* Текущая точка A=(X_cur, Y_cur, Z_cur) — состояние до начала работ.
* Целевая точка B=(X_targ, Y_targ, Z_targ) — желаемое состояние.
* Вектор AB — стратегия движения.

Примеры векторов:

* Сжатие с качеством:
  + ΔX<0, (меньше количество)
  + ΔY>0, (выше качество)
  + ΔZ<0 (в моменте тратим ресурсы, чтобы сжать и улучшить).
* Экстенсивное расширение:
  + ΔX>0, (количество растёт)
  + ΔY<0, (качество падает)
  + ΔZ<0 (в моменте растём количеством с ускорением).
* Инвестиции в качество при стабильном масштабе:
  + ΔX=0, (количество прежнее)
  + ΔY>0, (качество растёт)
  + ΔZ<0 (улучшаем, тратя ресурсы в моменте).

## Недопустимые и опасные области

X < 0 в абсолютном значении невозможно (не бывает отрицательного числа сервисов).
Однако относительное изменение ΔX может быть отрицательным (сжатие).

Z < 0 (убыток) допустимо временно, но требует явного плана возврата к Z≥0Z≥0.

X = 0 означает отсутствие сущностей (например, процесс не обслуживает ни одного клиента) — допустимо как временное состояние (миграция, ночной простой), но постоянное X = 0 означает смерть процесса.

```text
Падение Y ниже минимально допустимого SLA — нежизнеспособное состояние.
```

## Графическое представление

Куб с подписанными осями X, Y, Z.

![Куб выживания](./qwads.jpeg)

Точки:

* A (исходное состояние)
* B, C (промежуточное состояние)
* D (целевое состояние)

Вектор/траектория — стрелка или ломаная линия (если путь не прямой).

Пояснительная записка к каждому кубу обязательна (ссылается на артефакт `b1`).

## Пример (для цели b1 — сжатие с качеством)

### Исходная точка

* X = 10X (10 сервисов),
* Y = 200Y (200 мс, latency),
* Z = 500k (500k $/год, затраты).

### Целевая точка

* X = 3X (3 сервиса),
* Y = 100Y (100 мс),
* Z = 350k (350k $/год).

### Вектор

* ΔX = −7 (−7 сервисов),
* ΔY = −100 (−100 мс),
* ΔZ = −150k (−150k $/год, экономия).

На кубе это изображается как диагональ вниз-влево-вперёд (если Z — вертикальная ось, направленная вверх для улучшения, то экономия — движение вниз по Z).

## Пример (для цели b2 — рост с качеством)

### Исходная точка

* X = 10X (10 клиентов),
* Y = 99.5Y (99.5%, uptime),
* Z = 500k (500k $/год, прибыль).

### Целевая точка

* X = 300X (300 клиентов),
* Y = 99.9Y (99.9%, uptime),
* Z = 2500 (2500k $/год, прибыль).

### Вектор

* ΔX = +290 (+290 клиентов),
* ΔY = +0.4 (+0.4%, uptime),
* ΔZ = +2000k (+2000k $/год, прибыль).
* ΔZ(разраб) = -200k/6 мес (предполагаемые расходы за 6 месяцев)

На кубе это изображается как диагональ вверх-вправо-вперёд (если Z — вертикальная ось, направленная вверх для улучшения, то прибыль — движение вверх по Z, но входе перемещения вектора -- он отклоняется вниз в расходы).

## Пример (для цели b3 — рост с падением качества, захват рынка)

### Исходная точка

* X = 10X (10 клиентов),
* Y = 99.5Y (99.5%, uptime),
* Z = 500k (500k $/год, прибыль).

### Целевая точка

* X = 300X (300 клиентов),
* Y = 95.0Y (95.0%, uptime),
* Z = 2200 (2200k $/год, прибыль).

### Вектор

* ΔX = +290 (+290 клиентов),
* ΔY = -4.5 (-4.5%, uptime),
* ΔZ = +1700 (+1700 $/год, прибыль).
* ΔZ(разраб) = -200k/6 мес (предполагаемые расходы за 6 месяцев)

На кубе это изображается как диагональ вверх-влево-вперёд (если Z — вертикальная ось, направленная вверх для улучшения, то прибыль — движение вверх по Z, но в ходе вращения вектора он может отклоняться в расходы, качество при этом также падает по оси Y).
