docs(history): раскладка HISTORY по тематическим папкам (75 файлов)
Было: 41 файл в корне HISTORY/ + авторские папки OPUS/ и SONNET/ (34 файла). Стало — тематическая нумерация в стиле NOTES/ (10_, 20_, …): 10_reviews/ ревью кода и разборы от LLM (2) 20_releases/ заливки версий в реестр, чистки реестра, нумерация версий (8) 30_provider/ ядро провайдера: архитектура, модификаторы, UUID, nested (6) 40_generator/ генератор YAML/спеки, формат MAN (3) 50_docs/ пайплайн документации, навигация, публикация, хостинг S3 (9) 60_stands/ стенды и примеры: CRUD, FullPipe, Штурвал, TEST_STAND (7) 70_infra/ реестр, API Gateway, DDoS-Guard, VPN/213, зеркала (4) 90_llm/ диалоги и промпты с LLM вне тематики: OPUS/, SONNET/, gemini/ (34) OPUS/ и SONNET/ перенесены как есть в 90_llm/ — чтобы не рвать пары «бриф → ответ» внутри диалогов. Все переносы — через git mv (история сохранена). Перед правкой: TMP/backup_2026-10-02/HISTORY_before_restructure.tar.gz. Перекрёстные ссылки обновляются следующим коммитом.
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
# Prompt для Gemini: диаграмма пайплайна IoT Demo
|
||||
|
||||
## Задача
|
||||
|
||||
Создай красивую диаграмму (flowchart/архитектурную схему) пайплайна данных для IoT-демонстрации «Умный дом». Нужна **одна картинка** с 6 блоками сервисов и стрелками между ними.
|
||||
|
||||
---
|
||||
|
||||
## Сервисы (блоки)
|
||||
|
||||
### 1. Producer (верхний левый угол)
|
||||
- **Название:** Producer
|
||||
- **Подпись:** Node.js · Генератор IoT-событий
|
||||
- **Форма:** прямоугольник, синий/голубой (#3B82F6 или похожий)
|
||||
- **Иконка:** ⚙️ или 📡
|
||||
- **Что делает:** Эмулирует 8 IoT-датчиков (температура °C, влажность %, энергопотребление kW), каждые 3 секунды генерирует случайное JSON-событие
|
||||
|
||||
### 2. RabbitMQ (центр-верх)
|
||||
- **Название:** RabbitMQ
|
||||
- **Подпись:** Очередь сообщений · iot-events
|
||||
- **Форма:** прямоугольник, оранжевый (#FF6600 — брендовый цвет RabbitMQ)
|
||||
- **Иконка:** 🐰 или 📬
|
||||
- **Что делает:** Буфер сообщений AMQP. Принимает от Producer, отдаёт Consumer. Durable — не теряет при рестарте.
|
||||
|
||||
### 3. Consumer (правый верхний)
|
||||
- **Название:** Consumer
|
||||
- **Подпись:** Node.js · Обработчик
|
||||
- **Форма:** прямоугольник, зелёный (#10B981)
|
||||
- **Иконка:** 📥 или 🔄
|
||||
- **Что делает:** Читает очередь RabbitMQ, параллельно пишет в Redis и MongoDB
|
||||
|
||||
### 4. Redis (левый-центр, под Producer)
|
||||
- **Название:** Redis
|
||||
- **Подпись:** Кэш · latest + counters + recent
|
||||
- **Форма:** прямоугольник, красный (#DC2626 — брендовый цвет Redis)
|
||||
- **Иконка:** ⚡ или 🗄️
|
||||
- **Что делает:** Оперативный кэш для Dashboard. Хранит: последние значения датчиков (hash), счётчики по типам (hash), ленту 1000 событий (zset).
|
||||
|
||||
### 5. MongoDB (центр-низ)
|
||||
- **Название:** MongoDB
|
||||
- **Подпись:** Архив · TTL 7 дней
|
||||
- **Форма:** прямоугольник, тёмно-зелёный (#00684A — брендовый цвет MongoDB)
|
||||
- **Иконка:** 🍃 или 💾
|
||||
- **Что делает:** Постоянный архив всех событий в коллекции iot_events. Автоудаление через 7 дней (TTL-индекс).
|
||||
|
||||
### 6. Dashboard (правый-низ)
|
||||
- **Название:** Dashboard
|
||||
- **Подпись:** Node.js + Chart.js · Веб-интерфейс
|
||||
- **Форма:** прямоугольник, фиолетовый (#8B5CF6)
|
||||
- **Иконка:** 📊 или 🖥️
|
||||
- **Что делает:** Читает Redis, отдаёт JSON API и HTML с графиками. Bar chart (значения), Doughnut (счётчики), таблица событий. Автообновление каждые 3 сек.
|
||||
|
||||
---
|
||||
|
||||
## Стрелки (потоки данных)
|
||||
|
||||
| От | К | Протокол | Подпись на стрелке |
|
||||
|---|---|---|---|
|
||||
| Producer | RabbitMQ | AMQP (порт 5672) | JSON-события → очередь iot-events |
|
||||
| RabbitMQ | Consumer | AMQP (порт 5672) | JSON-события ← очередь iot-events |
|
||||
| Consumer | Redis (latest) | TCP (порт 6379) | HSET sensor_id → значение |
|
||||
| Consumer | Redis (counters) | TCP (порт 6379) | HINCRBY device_type |
|
||||
| Consumer | Redis (recent) | TCP (порт 6379) | ZADD лента событий |
|
||||
| Consumer | MongoDB | TCP (порт 27017) | insertOne → коллекция iot_events |
|
||||
| Redis | Dashboard | TCP (порт 6379) | HGETALL + ZRANGE (только чтение) |
|
||||
|
||||
---
|
||||
|
||||
## Расположение на схеме
|
||||
|
||||
```
|
||||
Producer ──→ RabbitMQ ──→ Consumer
|
||||
│
|
||||
┌──────────────┼──────────────┐
|
||||
↓ ↓ ↓
|
||||
Redis MongoDB Redis
|
||||
(latest, (архив) (counters,
|
||||
recent) ...)
|
||||
│ │ │
|
||||
└──────────────┼──────────────┘
|
||||
↓
|
||||
Dashboard
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Стиль
|
||||
|
||||
- **Тёмный фон** (#0F172A или похожий) — как у самого дашборда
|
||||
- **Блоки** с закруглёнными углами (border-radius 8–12px)
|
||||
- **Цвета блоков** — брендовые цвета каждого сервиса (см. выше)
|
||||
- **Текст в блоках** — белый или светлый
|
||||
- **Стрелки** — с подписями протоколов (AMQP, TCP) и названиями данных
|
||||
- **Иконки** в блоках приветствуются
|
||||
- **Легенда** внизу: протоколы (AMQP — оранжевая стрелка, TCP — серая стрелка)
|
||||
- Заголовок схемы: «IoT Demo — Умный дом» и подзаголовок «6 сервисов Nubes Cloud»
|
||||
|
||||
---
|
||||
|
||||
## Дополнительно
|
||||
|
||||
Можно добавить разделительную линию (или фон) показывающую, что все сервисы внутри Kubernetes-кластера, а наружу торчит только Dashboard (HTTP/HTTPS) и Producer/Consumer (для health-check).
|
||||
|
||||
---
|
||||
|
||||
## Формат
|
||||
|
||||
Сгенерируй **SVG** или **PNG**, который можно вставить в README.md.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Промпт для Gemini — ФИНАЛЬНАЯ ПРАВКА
|
||||
|
||||
У тебя уже есть схема. В ней **две ошибки**, исправь только их:
|
||||
|
||||
## Ошибка 1: Dashboard соединён с MongoDB — УБРАТЬ
|
||||
|
||||
Никакой связи между Dashboard и MongoDB нет. Dashboard читает ТОЛЬКО Redis. Убери эту стрелку.
|
||||
|
||||
## Ошибка 2: Нет связи Consumer → MongoDB
|
||||
|
||||
Consumer пишет в MongoDB (insertOne). Добавь стрелку Consumer → MongoDB с подписью "TCP · insertOne · архив 7 дн".
|
||||
|
||||
---
|
||||
|
||||
## Правильные связи (ВСЕ, ничего лишнего):
|
||||
|
||||
```
|
||||
Producer ──AMQP──→ RabbitMQ ──AMQP──→ Consumer
|
||||
│
|
||||
┌───────────┼───────────┐
|
||||
│ TCP │ TCP │ TCP
|
||||
▼ ▼ ▼
|
||||
Redis MongoDB Redis
|
||||
(HSET/ZADD) (insertOne) (HINCRBY)
|
||||
│
|
||||
│ TCP (только чтение)
|
||||
▼
|
||||
Dashboard ──HTTP──→ Браузер
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Что МЕНЯТЬ в имеющейся схеме:
|
||||
|
||||
1. **Удали** стрелку между Dashboard и MongoDB (в любую сторону)
|
||||
2. **Добавь** стрелку Consumer → MongoDB (TCP, insertOne)
|
||||
3. **Проверь** что Consumer → Redis (TCP, три команды: HSET, HINCRBY, ZADD)
|
||||
4. **Проверь** что Redis → Dashboard (TCP, только чтение)
|
||||
5. Всё. Больше ничего не трогай.
|
||||
|
||||
Никаких других изменений. Только эти две правки.
|
||||
Reference in New Issue
Block a user