Что такое шлюз события

«Что такое шлюз события» — вопрос из категории Архитектура, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Шлюз события (Event Gateway) — это паттерн интеграции, который централизует обработку событий в системе. Он принимает события от различных источников, преобразует их в единый формат и перенаправляет подписчикам.

Пример с кодом (Node.js):

class EventGateway {
  constructor() {
    this.subscribers = {};
  }

  subscribe(eventType, callback) {
    if (!this.subscribers[eventType]) {
      this.subscribers[eventType] = [];
    }
    this.subscribers[eventType].push(callback);
  }

  publish(eventType, data) {
    if (this.subscribers[eventType]) {
      this.subscribers[eventType].forEach(callback => callback(data));
    }
  }
}

// Использование
const gateway = new EventGateway();
gateway.subscribe('order.created', (order) => console.log('Order created:', order));
gateway.publish('order.created', { id: 1, total: 100 });

Преимущества:

  • Уменьшает связанность между компонентами.
  • Упрощает масштабирование и добавление новых подписчиков.
  • Обеспечивает единую точку управления событиями.

Недостатки:

  • Может стать узким местом при высокой нагрузке.
  • Усложняет отладку из-за централизации.