Выбор ответа Junior Микросервисы глазами аналитика спрашивают часто обновлено

База данных на сервис

Вопрос

Сервису доставки нужен адрес заказа, который хранится в базе сервиса заказов. Как правильно получить его в микросервисной архитектуре?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Через API сервиса заказов или копию адреса по событиям. Принцип database per service: данные сервиса доступны другим только через его контракт (API или события).

Варианты ответа

  1. Сделать общую базу для всех сервисов, чтобы данные были в одном месте
  2. Попросить пользователя ввести адрес ещё раз при оформлении доставки
  3. Читать напрямую таблицу orders из базы сервиса заказов
  4. Через API сервиса заказов или копию адреса по событиямправильный ответ

Разбор

Принцип database per service: данные сервиса доступны другим только через его контракт (API или события). Прямое чтение чужой таблицы связывает сервисы схемой: любая миграция ломает соседа. Общая база возвращает монолит с худшими свойствами. Повторный ввод адреса ухудшает опыт пользователя.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.