Задание
|
Предыдущий урок
Видеоурок
|
2 из 3 уроков
Необходимо выполнить задание
|
Следующий урок
Оценка качества проверки ДЗ
|
Время выполнения задания: ~1-1.5 часа
Сложность: ⭐️⭐️ (максимум ⭐️⭐️⭐️⭐️⭐️)
Бонусы: 200
На вашем счету сейчас: 1 бонуса/ов
Общая схема
На рисунке показана общая схема системы.
💎 Запустить инфраструктуру
Для того чтобы сервис работал, ему нужна база данных и прочие зависимости. Все эти зависимости запускаются в Docker и находятся в проекте Infrastructure.
Подтяните последнюю версию Infrastructure
- Если вы ранее не скачивали проект, то:
git clone https://gitlab.com/microarch-ru/ddd-in-practice/infrastructure.git
- А если скачивали, то просто обновите:
git pull https://gitlab.com/microarch-ru/ddd-in-practice/infrastructure.git
- Откройте терминал и перейдите в папку Infrastructure
- Выполните команду
docker-compose up
- Если ваш компьютер маломощный, то вы можете запускать инфраструктурные системы выборочно. Оставьте в команде, только нужные системы:
docker-compose up postgres kafka init-kafka kowl geo notification discount backoffice basket
💎 Подготовка к заданию
Установите в проекте следующий пакет:
https://github.com/confluentinc/confluent-kafka-go
Или вы можете использовать другой популярный пакет для работы с Kafka
https://github.com/IBM/sarama
Задание
Легенда
Вы отвечаете за разработку микросервиса Delivery (доставка)
Подготовка
- Вы работаете в своём Git репозитории "delivery"
- Создайте ветку module-10
- Выполните задание в ней
Задача
- Basket отправляет в сервис Delivery информацию о заказе асинхронно, через Kafka.
- Basket отправляет сообщение в топик: "basket.confirmed"
- Контракт сообщения
- Необходимо, чтобы сервис Delivery обрабатывал сообщение от Basket и создавал новый заказ у себя в базе данных
После реализации
Используйте тестовый метод для оформления корзины
💎 Тестовый метод для оформления корзины
Вы можете создать заказ в Basket с помощью метода:
curl --location --request POST 'http://localhost:8081/api/v1/baskets/new/test-checkout'
Или можете использовать интерфейс Backoffice UI
После вызова этого метода в сервисе Basket будет оформлена корзина и отправлено сообщение в Kafka с деталями заказа.
Критерии оценивания
- Реализован Kafka Consumer
- Kafka Consumer взаимодействует с Use Case
- Сервис успешно создаёт заказ в своей БД
По любым вопросам обращайтесь в комментариях к уроку или в Telegram
Если вы обнаружили ошибку или неточность в данном уроке, сообщите о ней в комментариях к данному уроку. Это поможет сделать курс лучше.