> For the complete documentation index, see [llms.txt](https://prethink.gitbook.io/prtelegrambot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prethink.gitbook.io/prtelegrambot/ru/shina-sobytii.md).

# Шина событий

**EventBus (шина событий)** — это архитектурный паттерн, предназначенный для обмена сообщениями между различными компонентами приложения. Он позволяет организовать взаимодействие между отправителями событий (*publishers*) и их получателями (*subscribers*) без прямой зависимости друг от друга, тем самым снижая связанность системы.

Для работы с шиной событий используются:

* класс [**`PREventBus`**](/prtelegrambot/ru/api/klassy/preventbus.md);
* базовый интерфейс [**`IPRGlobalSubscriber`**](/prtelegrambot/ru/api/interfeisy/iprglobalsubscriber.md).

[**`PREventBus`** ](/prtelegrambot/ru/api/klassy/preventbus.md)— это статический класс, отвечающий за:

* регистрацию подписчиков;
* отписку подписчиков;
* вызов событий для соответствующих подписчиков.

[**`IPRGlobalSubscriber`** ](/prtelegrambot/ru/api/interfeisy/iprglobalsubscriber.md)— базовый интерфейс для всех подписчиков шины событий.\
Классы, которые должны реагировать на события EventBus, обязаны реализовывать интерфейсы-наследники [`IPRGlobalSubscriber`](/prtelegrambot/ru/api/interfeisy/iprglobalsubscriber.md).

Подписчиков одного типа (интерфейса) может быть неограниченное количество — все они будут получать соответствующие события, вызванные через шину.
