C4 и контейнеры¶
Контейнерная модель (C4 Level 2)¶
flowchart TB
subgraph platform [KonstructoriumPlatform]
authSvc["auth_service : Django DRF"]
userSvc["user_service : Django DRF"]
productSvc["product_service : Django DRF"]
orderSvc["order_service : Django DRF"]
reviewSvc["review_service : Django DRF"]
chatSvc["chat_service : Django DRF"]
analyticsSvc["analytics_service : Django DRF"]
adminSvc["admin_service : Django DRF"]
botSvc["telegram_bot_service : aiogram"]
celerySvc["order_celery : Celery Worker"]
pg["PostgreSQL 15"]
redis["Redis 7"]
end
botSvc --> orderSvc
botSvc --> productSvc
orderSvc --> celerySvc
celerySvc --> redis
authSvc --> pg
userSvc --> pg
productSvc --> pg
orderSvc --> pg
reviewSvc --> pg
chatSvc --> pg
adminSvc --> pg
Карта API-префиксов¶
auth_service:/api/*user_service:/api/*product_service:/api/*order_service:/api/*review_service:/api/*chat_service:/api/chat/*admin_service:/api/admin/*analytics_service:/api/analytics/*
Точка связности через shared app imports¶
Сервисы на старте добавляют соседние директории в PYTHONPATH и импортируют внешние Django app-модели. Это следует рассматривать как архитектурный контракт, требующий строгого контроля версий миграций.
Нефункциональные атрибуты¶
- Преимущество: единая семантика пользователей и ролей.
- Риск: tight coupling, сложная эволюция независимого деплоя.
- Рекомендация: документировать любые изменения моделей как межсервисное событие.