- ./gradlew clean
- ./gradlew bootJar
- docker build -t project-command -f project-command/Dockerfile . && docker build -t project-query -f project-query/Dockerfile .
- docker-compose up -d
Command API доступен на порту 8081 Query API доступен на порту 8082 RabbitMQ Management доступен на порту 15672 PostgreSQL Command доступен на порту 5433 PostgreSQL Read доступен на порту 5434 Redis доступен на порту 6379
- Контейнеризация (Docker) Проект полностью контейнеризирован Имеет Dockerfile для каждого сервиса Использует docker-compose для оркестрации всех сервисов Включает контейнеры для всех необходимых компонентов (приложения, базы данных, Redis, RabbitMQ)
- Кеширование (Redis) Redis интегрирован в проект Настроен как кэш для Spring Boot приложений Имеет конфигурацию RedisCacheManager Используется в обоих сервисах (command и query)
- Event-driven архитектура (RabbitMQ) RabbitMQ полностью интегрирован Настроены очереди для обмена сообщениями Реализована публикация и подписка на события Используется для асинхронной коммуникации между сервисами
- Observability Реализована через Spring Boot Actuator Настроены health checks Интегрирован Prometheus для метрик Включены основные эндпоинты мониторинга
- CQRS и Event Sourcing Четкое разделение на command и query сервисы Реализован Event Store для хранения событий Используется паттерн Event Sourcing (видно по структуре событий и их обработке) Есть отдельный модуль project-events для общих событий Реализована обработка событий в query сервисе