Обзор системы
Высокоуровневая архитектура
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Mobile │ │ Web │ │ Admin Panel │
│ (iOS/And) │ │ (Frontend) │ │ │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────────────┼───────────────────┘
│
┌──────▼──────┐
│ API Gateway │
│ (Auth, Rate │
│ Limiting) │
└──────┬──────┘
│
┌────────────────┼────────────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ Service │ │ Service │ │ Service │
│ A │ │ B │ │ C │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────────────┼────────────────┘
│
┌──────▼──────┐
│ Message Bus │
│ (Kafka / │
│ RabbitMQ) │
└──────┬──────┘
│
┌────────────────┼────────────────┐
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ PostgreSQL │ │ Redis │ │ S3 │
└─────────────┘ └─────────────┘ └─────────────┘Основные сервисы
| Сервис | Назначение | Технологии | Владелец (стрим) |
|---|---|---|---|
| API Gateway | Маршрутизация, аутентификация | — | — |
| Service A | — | Go | — |
| Service B | — | Go | — |
| Service C | — | — | — |
Основные зависимости между сервисами
Правила взаимодействия
- Синхронные вызовы: REST / gRPC с timeout и retry
- Асинхронные вызовы: через Message Bus
- Циклические зависимости запрещены
- Каждый сервис владеет своими данными (database per service)
Окружения
| Окружение | Назначение | URL |
|---|---|---|
| Development | Локальная разработка | localhost |
| Staging | Предпродакшен | — |
| Production | Боевое | — |