> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rek.la/llms.txt
> Use this file to discover all available pages before exploring further.

# Обзор архитектуры

> Микросервисная архитектура платформы REKLA

# Архитектура REKLA

REKLA построена на современной микросервисной архитектуре, обеспечивающей высокую масштабируемость, надежность и простоту разработки.

## Принципы архитектуры

<CardGroup cols={2}>
  <Card title="Микросервисы" icon="cubes">
    Каждый сервис отвечает за конкретную бизнес-функцию и может разрабатываться независимо
  </Card>

  <Card title="API-First" icon="plug">
    Все взаимодействие между сервисами происходит через REST API
  </Card>

  <Card title="Масштабируемость" icon="expand">
    Горизонтальное масштабирование каждого сервиса по необходимости
  </Card>

  <Card title="Отказоустойчивость" icon="shield">
    Изоляция сбоев и graceful degradation при недоступности сервисов
  </Card>
</CardGroup>

## Схема архитектуры

```mermaid theme={null}
graph TB
    User[Пользователь] --> TelegramBot[REKLA BOT]
    User --> WebDashboard[Dashboard Frontend]
    
    TelegramBot --> DashboardAPI[Dashboard Backend]
    WebDashboard --> DashboardAPI
    
    DashboardAPI --> Database[(PostgreSQL)]
    DashboardAPI --> Redis[(Redis Cache)]
    DashboardAPI --> S3[(S3 Storage)]
    
    DashboardAPI --> MarkingModule[Marking Module]
    MarkingModule --> Database
    
    TelegramBot --> TelegramAPI[Telegram API]
    
    subgraph "External Services"
        TelegramAPI
        S3
    end
    
    subgraph "REKLA Microservices"
        TelegramBot
        DashboardAPI
        WebDashboard
        MarkingModule
    end
    
    subgraph "Data Layer"
        Database
        Redis
    end
```

## Компоненты системы

### REKLA BOT

**Назначение**: Telegram-бот для взаимодействия с пользователями

<Accordion title="Основные функции">
  * Регистрация и аутентификация пользователей
  * Управление каналами и подписками
  * Интерфейс для создания и редактирования публикаций
  * Система календаря и планирования
  * Настройка автопостинга и автоподписей
  * Отображение аналитики и статистики
</Accordion>

<Accordion title="Технологии">
  * **Язык**: Python 3.11+
  * **Фреймворк**: aiogram 3.x
  * **База данных**: SQLAlchemy ORM
  * **Кеширование**: Redis
  * **Очереди**: Celery + Redis
</Accordion>

### Dashboard Backend

**Назначение**: API-сервер для бизнес-логики и управления данными

<Accordion title="Основные функции">
  * RESTful API для всех операций
  * Управление пользователями и правами доступа
  * Обработка медиа-файлов и их хранение
  * Система планировщика задач
  * Интеграция с внешними сервисами
  * Аналитика и отчетность
</Accordion>

<Accordion title="Технологии">
  * **Язык**: Python 3.11+
  * **Фреймворк**: FastAPI
  * **База данных**: PostgreSQL + SQLAlchemy
  * **Кеширование**: Redis
  * **Файловое хранилище**: AWS S3 / MinIO
  * **Очереди**: Celery + Redis
</Accordion>

### Dashboard Frontend

**Назначение**: Веб-интерфейс для управления каналами

<Accordion title="Основные функции">
  * Веб-панель управления каналами
  * Интерфейс создания и редактирования контента
  * Визуализация аналитики и статистики
  * Настройка автопостинга и расписаний
  * Управление пользователями и правами
  * Биллинг и подписки
</Accordion>

<Accordion title="Технологии">
  * **Язык**: TypeScript
  * **Фреймворк**: React 18 + Next.js
  * **UI Kit**: Custom UI components
  * **Стейт-менеджмент**: Redux Toolkit
  * **Стилизация**: Tailwind CSS
  * **Сборка**: Vite / Next.js
</Accordion>

### Marking Module

**Назначение**: Автоматическая маркировка рекламного контента

<Accordion title="Основные функции">
  * Анализ контента на предмет рекламы
  * Автоматическое добавление маркировочных меток
  * Валидация юридической информации
  * Интеграция с внешними реестрами
  * Логирование всех операций маркировки
</Accordion>

<Accordion title="Технологии">
  * **Язык**: Python 3.11+
  * **ML/NLP**: scikit-learn, transformers
  * **API**: FastAPI
  * **База данных**: PostgreSQL
  * **Очереди**: Celery + Redis
</Accordion>

## Паттерны проектирования

### Repository Pattern

Все сервисы используют паттерн Repository для абстракции работы с данными:

```python theme={null}
class BaseSQLRepo:
    def __init__(self, session: AsyncSession):
        self.session = session
    
    async def get(self, id: int) -> Optional[Model]:
        # Базовая реализация получения по ID
        pass
    
    async def create(self, **kwargs) -> Model:
        # Базовая реализация создания
        pass
```

### Unit of Work

Управление транзакциями через паттерн Unit of Work:

```python theme={null}
class UnitOfWork:
    def __init__(self):
        self.users = UserRepository()
        self.channels = ChannelRepository()
    
    async def __aenter__(self):
        self.session = await create_session()
        return self
    
    async def commit(self):
        await self.session.commit()
    
    async def rollback(self):
        await self.session.rollback()
```

### Event-Driven Architecture

Использование событий для связи между сервисами:

```python theme={null}
@dataclass
class PublicationCreated:
    publication_id: int
    channel_id: int
    user_id: int
    scheduled_at: datetime

# Обработчик события
async def handle_publication_created(event: PublicationCreated):
    await marking_service.process_publication(event.publication_id)
```

## Масштабирование и производительность

### Горизонтальное масштабирование

* Каждый микросервис может масштабироваться независимо
* Load balancer распределяет нагрузку между инстансами
* Автоматическое масштабирование на основе метрик

### Кеширование

* Redis для кеширования часто используемых данных
* Кеширование результатов API запросов
* Кеширование статической информации о каналах

### Асинхронная обработка

* Celery для обработки тяжелых задач в фоне
* Очереди для планирования публикаций
* Асинхронные операции с внешними API

## Мониторинг и логирование

### Централизованное логирование

* Структурированные логи в JSON формате
* Агрегация логов всех сервисов
* Алерты на критические ошибки

### Метрики и мониторинг

* Мониторинг производительности каждого сервиса
* Отслеживание бизнес-метрик
* Health checks для всех сервисов

### Трейсинг

* Распределенный трейсинг запросов между сервисами
* Отслеживание времени выполнения операций
* Выявление узких мест в производительности

## Безопасность

### Аутентификация и авторизация

* JWT токены для API аутентификации
* OAuth 2.0 для внешних интеграций
* Role-based access control (RBAC)

### Защита данных

* Шифрование конфиденциальных данных
* Регулярные бэкапы базы данных
* Соответствие требованиям GDPR

### Сетевая безопасность

* HTTPS для всех внешних соединений
* VPN для межсервисного взаимодействия
* Firewall и DDoS защита

## Следующие шаги

<CardGroup cols={2}>
  <Card title="Микросервисы" icon="cubes" href="/architecture/microservices">
    Подробное описание каждого микросервиса
  </Card>

  <Card title="База данных" icon="database" href="/architecture/database">
    Схема базы данных и модели данных
  </Card>

  <Card title="Развертывание" icon="rocket" href="/architecture/deployment">
    Процесс развертывания и DevOps практики
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Документация по API всех сервисов
  </Card>
</CardGroup>
