Ответ
Шлюз события (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 });
Преимущества:
- Уменьшает связанность между компонентами.
- Упрощает масштабирование и добавление новых подписчиков.
- Обеспечивает единую точку управления событиями.
Недостатки:
- Может стать узким местом при высокой нагрузке.
- Усложняет отладку из-за централизации.