User Service — Events
Публикует
user.kds_device.revoked (BR 5.1)
Публикуется при DELETE /admin/kds/devices/{id} — force-logout KDS-устройства администратором. Используется pos-bff чтобы немедленно разорвать активные WebSocket-сессии этого устройства (вместо ожидания следующего REST-запроса с 401).
Topic: user.kds_device.revoked
Ключ Kafka: device_id
Retention: 1 день (короткое — событие потеряет актуальность через сутки)
{
"event_id": "uuid",
"event_type": "user.kds_device.revoked",
"timestamp": "datetime",
"version": 1,
"source": "user-service",
"payload": {
"device_id": "uuid",
"franchise_id": "uuid",
"store_id": "uuid",
"revoked_by_user_id": "uuid",
"revoked_at": "datetime"
}
}Консьюмеры:
pos-bff— ищет открытые WS-сессии с этимdevice_id, отправляет close-frameDEVICE_REVOKED, удаляет из реестра подписчиков
Прочие события
На текущем этапе User Service не публикует других Kafka-событий. Приостановка/возобновление ЮЛ реализована через синхронный вызов Store Service (internal API).
Потребляет
User Service не потребляет внешних событий на текущем этапе.
Запланировано к публикации (BR 1.4.1, ещё не в коде)
| Event | Topic | Описание | Payload |
|---|---|---|---|
user.shift.auto-closed | user.shift.auto-closed | Смена автоматически закрыта (превышение 24ч) | { employee_id, store_id, shift_record_id, clock_in, auto_clock_out } |
user.payroll.confirmed | user.payroll.confirmed | Ведомость подтверждена | { payroll_id, store_id, period, confirmed_by, employee_count, total_amount } |
Пока не опубликовано
ShiftAutoCloseJobфиксирует автозакрытие в БД, но Kafka-события не шлёт. Будет включено при появлении консьюмеров (Notification Service, Finance Service).
Будущие события
| Event | Описание | Когда понадобится |
|---|---|---|
user.legal-entity.suspended | ЮЛ приостановлено | Если появятся другие консьюмеры кроме Store Service |
user.legal-entity.resumed | ЮЛ возобновлено | Если появятся другие консьюмеры |
user.legal-entity.deleted | ЮЛ удалено (soft) | Для синхронизации с другими сервисами |
user.employee.deactivated | Сотрудник деактивирован | Auth Service (инвалидация сессий) |
События клиентов — в Customer Service
(BR 3.1) События
customer.created/customer.updated/customer.deletedпубликует Customer Service, а не User Service. Строкаuser.customer.registeredубрана — клиенты вынесены в отдельный микросервис.
Переход на Kafka
При появлении нескольких консьюмеров одного события (например, приостановка ЮЛ нужна и Store Service, и Finance Service) — переводим на Kafka, убираем синхронный вызов.