Завдання:
Створіть систему із мікросервісною архітектурою для обробки замовлень в інтернет-магазині з використанням технології RabbitMQ і Django.
Система має складатися (приблизно) з таких мікросервісів:
- Сервіс замовлень - отримує замовлення від клієнтів та розподіляє їх між іншими сервісами.
- Сервіс каталогу і складу - містить інформацію про наявні товари та їх описи, відстежує наявність товарів на складі та надсилає повідомлення про зміну стану запасів.
- Сервіс користувачів – містить інформацію про клієнтів і історію їх замовлень.
Кожен мікросервіс має виконувати свою функцію, а також взаємодіяти з іншими сервісами за допомогою черги RabbitMQ.
Кожен мікросервіс має мати свою базу даних.
Взаємодія між мікросервісами повинна бути реалізована за допомогою обробки повідомлень з відповідних черг RabbitMQ.
Розподілити наступне API системи між мікросервісами:
-
Створення нового користувача.
-
Додавання нового товару на склад до певної категорії.
-
Отримання існуючих на складі товарів за певною категорію.
-
Купівля товару зі складу певним користувачем із зміною кількості товару на складі.
-
Отримання історії замовлень користувача.
Усі сутності мають бути представлені відповідними таблицями і моделями у базі даних.
Додати перевірки у своє API (закінчились товари, немає користувача, тощо).
Ви можете змінювати API і перелік мікросервісів за своїм смаком, якщо вважаєте, що це позитивно вплине на кінцевий продукт.