5.7 KiB
5.7 KiB
Рецензия
Слабые места
- Масштабируемость: при монолитной архитектуре масштабирование может представлять проблему в случае роста количества пользователей и функционала. Рекомендуется разделение проекта на несколько микросервисов для улучшения масштабируемости.
- Консистентность: при отсутствии базы данных может возникнуть проблема с консистентностью данных, если не обеспечить транзакционную изоляцию. Рекомендуется использование базы данных для хранения состояния и контроля версий данных.
- Выносливость: при монолитной архитектуре в случае сбоя одного компонента может возникнуть полный отказ системы. Рекомендуется использование микросервисов для улучшения выносливости и автоматизации восстановления.
- Наблюдение: при отсутствии базы данных может возникнуть проблема с наблюдением за работой системы, если не обеспечить логгирование событий и метрик. Рекомендуется использование мониторинга для наблюдения за работой системы.
- Удержание: при отсутствии базы данных может возникнуть проблема с удержанием состояния между сеансами пользователя. Рекомендуется использование куки или токенов для хранения состояния.
Рекомендованные ADRs
- ADR-001: База данных — описание выбора базы данных и её настройка.
- ADR-002: Микросервисы — описание разделения проекта на несколько микросервисов для улучшения масштабируемости, выносливости и удержания состояния.
- ADR-003: Логгирование — описание логгирования событий и метрик для наблюдения за работой системы.
- ADR-004: Авторизация — описание внедрения авторизации для обеспечения безопасности.
- ADR-005: Мониторинг — описание мониторинга для наблюдения за работой системы.
Диаграммы
- Диаграмма концептуального архитектура (Architecture Diagram)
- Диаграмма классов (Class Diagram)
- Диаграмма компонентов (Component Diagram)
- Диаграмма взаимодействия (Interaction Diagram)
- Диаграмма состояний (State Diagram)
- Диаграмма последовательности событий (Sequence Diagram)
- Диаграмма конфигурации (Configuration Diagram)
- Диаграмма деплоя (Deployment Diagram)
Предложенная архитектура
Архитектурные неизменяемые свойства
- Данные хранения: использование базы данных для хранения состояния и контроля версий данных.
- Масштабируемость: разделение проекта на несколько микросервисов для улучшения масштабируемости, выносливости и удержания состояния.
- Наблюдение: использование мониторинга для наблюдения за работой системы.
- Авторизация: внедрение авторизации для обеспечения безопасности.
- Логгирование: логгирование событий и метрик для наблюдения за работой системы.
- Выносливость: использование микросервисов для улучшения выносливости и автоматизации восстановления.
- Удержание: использование куки или токенов для хранения состояния между сеансами пользователя.







