Skip to main content

Чим EDA відрізняється від request-response архітектури?

EDA (Event-Driven Architecture) і request-response архітектура - це два різні підходи до взаємодії сервісів. Вони різняться напрямом зв'язку, синхронністю і ступенем залежності компонентів.

1. Принцип взаємодії

ПідхідСуть
Request-ResponseОдин сервіс робить запит іншому і чекає на відповідь (наприклад, HTTP REST або gRPC).
EDAСервіс публікує подію, а інші підписники реагують на неї асинхронно, без очікування.

Приклад:

  • Request-Response → сервіс «Замовлення» викликає «Оплату» і чекає на підтвердження.
  • EDA → сервіс «Замовлення» публікує подію «OrderCreated», а «Оплата» самостійно її обробляє.

2. Тип зв'язку

  • Request-Response: сильна зв'язаність - сервіс повинен знати адресу і контракт іншого.
  • EDA: слабка зв'язаність - видавець не знає підписників, зв'язок іде через брокер повідомлень.

3. Синхронність

  • Request-Response: синхронно - сервіс, що викликає, блокується до отримання відповіді.
  • EDA: асинхронно - усі працюють незалежно і паралельно.

4. Масштабування і відмовостійкість

  • Request-Response складніше масштабувати: збій одного вузла тягне за собою ланцюжок помилок.
  • EDA масштабується простіше: брокер буферизує події, а сервіси обробляють їх у своєму темпі.

5. Застосування

  • Request-Response: для прямих, критичних запитів («отримати профіль», «створити замовлення»).
  • EDA: для подієвих реакцій («оплату здійснено», «товар доставлено»).

Підсумок:

Request-Response - це точковий, синхронний діалог між сервісами. EDA - це потік асинхронних подій, де сервіси реагують на зміни, не залежачи одне від одного.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.