diff --git a/README.md b/README.md
index 978dfe9..f0c156e 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,82 @@
# statCollector
+Техническое задание
+ "StatCollector" — высоконагруженный сервер сбора и агрегации метрик
+
+ 1. Наименование системы
+
+**"StatCollector"** — высокопроизводительный TCP-сервер для приёма, агрегации и хранения статистических метрик в реальном времени на языке C++.
+
+ 2. Предметная область
+
+В современных распределённых системах (микросервисы, IoT-устройства, веб-приложения) критически важно собирать и агрегировать метрики в реальном времени:
+
+- количество запросов к API;
+- время ответа (latency);
+- ошибки (HTTP 5xx, таймауты);
+- загрузка CPU/памяти;
+- бизнес-метрики (количество продаж, активных пользователей).
+
+**Задача** — разработать упрощённый аналог систем мониторинга (StatsD, Prometheus), который принимает метрики от множества источников, агрегирует их по заданным интервалам и предоставляет доступ к агрегированным данным.
+
+ 3. Постановка задачи
+
+Разработать сервер на C++, который:
+
+- принимает TCP-подключения от произвольного числа клиентов (агентов мониторинга);
+- принимает метрики в текстовом формате;
+- агрегирует метрики за заданные временные интервалы (например, за 5 секунд, 1 минуту);
+- поддерживает разные типы метрик (счётчики, текущие значения, таймеры);
+- предоставляет доступ к агрегированным данным через отдельный интерфейс (TCP или простая HTTP-обвязка);
+- выдерживает высокую нагрузку по приёму метрик (десятки тысяч событий в секунду).
+
+ 4. Функциональные требования
+
+| ID | Требование |
+|----|------------|
+| **FR1** | Клиент подключается по TCP и отправляет метрику в формате: `metric_name:value|type` (например, `api_requests:1|counter`) |
+| **FR2** | Поддержка типов метрик:
• `counter` — счётчик (суммируется за интервал)
• `gauge` — текущее значение (записывается последнее)
• `timer` — время в мс (вычисляется среднее, p95) |
+| **FR3** | Автоматическая агрегация метрик по временным окнам (например, каждые 5 секунд) |
+| **FR4** | Возможность запросить агрегированные метрики по команде `STATS metric_name` |
+| **FR5** | Поддержка множества одновременных клиентских подключений |
+| **FR6** | Поддержка тегов для метрик: `api_requests:1|counter|endpoint=/users,method=GET` |
+| **FR7** | (Опционально) Экспорт метрик в формате Prometheus через HTTP-эндпоинт `/metrics` |
+
+
+
+
+
+ 5. Нефункциональные требования
+
+| ID | Требование |
+|----|------------|
+| **NFR1** | Сервер должен выдерживать приём не менее 50 000 метрик в секунду |
+| **NFR2** | Среднее время обработки одной метрики — не более 50 мкс |
+| **NFR3** | Отсутствие гонок данных при конкурентном приёме метрик |
+| **NFR4** | Устойчивость к некорректным форматам метрик (сервер не падает) |
+| **NFR5** | Автоматическая очистка старых агрегированных данных |
+
+ 6. Технологический стек
+
+| Компонент | Технология | Обоснование |
+|-----------|------------|-------------|
+| **Язык** | C++17/20 | Максимальная производительность |
+| **Сеть** | Boost.Asio | Асинхронный ввод-вывод для тысяч подключений |
+| **Хранилище** | `std::unordered_map` + шардирование | Высокая производительность при конкурентном доступе |
+| **Агрегация** | Инкрементальные алгоритмы (P² для квантилей) | Минимальные накладные расходы |
+| **Многопоточность** | Пул потоков + lock-free очереди | Максимальная пропускная способность |
+| **Тестирование** | Самописный генератор нагрузки на C++ | Полный контроль над тестированием |
+
+ 7. Результаты (Deliverables)
+
+1. **Исходный код сервера** на C++ с CMake
+2. **Тестовый клиент** для ручной проверки (или инструкция по подключению через netcat/telnet)
+3. **Нагрузочный генератор** для автоматического тестирования
+4. **Отчёт** с:
+ - Архитектурой и принятыми решениями
+ - Результатами нагрузочного тестирования (таблицы, графики)
+ - Анализом узких мест
+ - Рекомендациями по улучшению
+
+---
+