Skip to content

Обзор системы

Высокоуровневая архитектура

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   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 AGo
Service BGo
Service C

Основные зависимости между сервисами

Правила взаимодействия

  • Синхронные вызовы: REST / gRPC с timeout и retry
  • Асинхронные вызовы: через Message Bus
  • Циклические зависимости запрещены
  • Каждый сервис владеет своими данными (database per service)

Окружения

ОкружениеНазначениеURL
DevelopmentЛокальная разработкаlocalhost
StagingПредпродакшен
ProductionБоевое