Реестр событий PIN
Все интеграционные события (IKafkaEvent, топики pin.<context>.<event>.v1) и их consumers. Дом
контракта — docs/06-services/<context>/events/<event>.md (event-contract-template); consumers —
docs/06-services/<consumer-context>/consumers/<name>.md.
Формат: | Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
Все контракты —
ContractVersion = 1(первый выпуск). Топик кодирует версию суффиксом.v1. Часть контекстов делит один топик на несколько типов событий (pin.identity.users,pin.identity.companies,pin.profile.verification-requests,pin.referral.bonds,pin.rewards.referral-accruals).catalogиdev-statsсобственных событий не публикуют — только потребляют (см.consumers/). Консюмерgateway— общий шлюз (кэш интроспекции), вне 21 контекста.
Входящие внешние (Talent)
| Поток | Источник | Consumer-контекст | Документ |
|---|---|---|---|
| Компании/пользователи | Talent Identity | identity | talent-identity-sync |
| Проекты/объекты/цены | Talent Chessboard | chessboard, invest-analytics | talent-chessboard-sync, talent-price-sync |
| Собственники | Talent Owners | investor-owner | talent-owners-sync |
| Справочники (страны/регионы/города/валюты/языки) | Talent Handbook | handbook | talent-handbook-sync |
identity / profile / chessboard
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.identity.company-upserted | pin.identity.companies.v1 | 1 | identity | catalog, chessboard, news, wallet | company-upserted |
pin.identity.company-suspended | pin.identity.companies.v1 | 1 | identity | catalog, chessboard, news, wallet | company-suspended |
pin.identity.user-upserted | pin.identity.users.v1 | 1 | identity | profile, crm, referral, news, messenger, support, investor-owner, notifications, calendar, wallet | user-upserted |
pin.identity.user-blocked | pin.identity.users.v1 | 1 | identity | gateway, profile | user-blocked |
pin.identity.user-signed-in | pin.identity.sign-ins.v1 | 1 | identity | user-activity, referral | user-signed-in |
pin.identity.user-access-changed | pin.identity.access.v1 | 1 | identity | gateway | user-access-changed |
pin.identity.company-invitation-changed | pin.identity.company-invitation-changed.v1 | 1 | identity | notifications | company-invitation-changed |
pin.identity.agent-membership-changed | pin.identity.agent-membership-changed.v1 | 1 | identity | crm, rewards, notifications | agent-membership-changed |
pin.profile.verification-request-submitted | pin.profile.verification-requests.v1 | 1 | profile | notifications | verification-request-submitted |
pin.profile.verification-completed | pin.profile.verification-requests.v1 | 1 | profile | notifications | verification-completed |
pin.profile.person-upserted | pin.profile.persons.v1 | 1 | profile | (внутр. реплики) | person-upserted |
pin.chessboard.project-upserted | pin.chessboard.project-upserted.v1 | 1 | chessboard | catalog, dev-stats | project-upserted |
pin.chessboard.building-upserted | pin.chessboard.building-upserted.v1 | 1 | chessboard | catalog, dev-stats | building-upserted |
pin.chessboard.layout-group-upserted | pin.chessboard.layout-group-upserted.v1 | 1 | chessboard | dev-stats, rewards | layout-group-upserted |
pin.chessboard.layout-upserted | pin.chessboard.layout-upserted.v1 | 1 | chessboard | dev-stats, rewards | layout-upserted |
pin.chessboard.property-object-upserted | pin.chessboard.property-object-upserted.v1 | 1 | chessboard | catalog, dev-stats | property-object-upserted |
pin.chessboard.property-object-status-changed | pin.chessboard.property-object-status-changed.v1 | 1 | chessboard | catalog | property-object-status-changed |
pin.chessboard.property-object-price-changed | pin.chessboard.property-object-price-changed.v1 | 1 | chessboard | invest-analytics, catalog | property-object-price-changed |
pin.chessboard.developer-upserted | pin.chessboard.developer-upserted.v1 | 1 | chessboard | catalog, dev-stats | developer-upserted |
agent-membership-changed несёт enum Reason (LeaveReason: SelfLeave / ExcludedByAgency, заполняется
при Status = Left, ADR-0072) — различает добровольный уход и принудительное исключение; crm/rewards
запускают offboarding-каскад, notifications строит текст уведомления по Reason.
handbook
Реплика внешних справочников Talent. Топики compacted (cleanup.policy = compact): последняя запись
каждой сущности хранится бессрочно и служит источником bootstrap новых консюмеров. Ключ — Id (per-key
порядок).
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.handbook.country-upserted | pin.handbook.countries.v1 | 1 | handbook | chessboard | country-upserted |
pin.handbook.region-upserted | pin.handbook.regions.v1 | 1 | handbook | chessboard | region-upserted |
pin.handbook.city-upserted | pin.handbook.cities.v1 | 1 | handbook | chessboard | city-upserted |
pin.handbook.currency-upserted | pin.handbook.currencies.v1 | 1 | handbook | chessboard | currency-upserted |
pin.handbook.language-upserted | pin.handbook.languages.v1 | 1 | handbook | — (текущих потребителей нет; compacted для будущих) | language-upserted |
catalog / invest-analytics / rewards
catalog собственных интеграционных событий не публикует (consumer-only: проекции витрины по чужим
событиям). invest-analytics публикует события пересчёта эконом-модели и метрик доходности; rewards —
финансовый контур комиссий и реферальных вознаграждений (ADR-0065).
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.invest-analytics.model-changed | pin.invest-analytics.model-changed.v1 | 1 | invest-analytics | invest-analytics (self, пересчёт) | model-changed |
pin.invest-analytics.property-object-metrics-updated | pin.invest-analytics.property-object-metrics.v1 | 1 | invest-analytics | catalog | property-object-metrics |
pin.rewards.reward-rule-changed | pin.rewards.reward-rule-changed.v1 | 1 | rewards | catalog | reward-rule-changed |
pin.rewards.commission-rules | pin.rewards.commission-rules.v1 | 1 | rewards | catalog | commission-rules |
pin.rewards.commission-accrual-created | pin.rewards.commission-accrual-created.v1 | 1 | rewards | notifications, crm, rewards (self) | commission-accrual-created |
pin.rewards.commission-accrual-status-changed | pin.rewards.commission-accrual-status-changed.v1 | 1 | rewards | notifications, rewards (self) | commission-accrual-status-changed |
pin.rewards.commission-money-received | pin.rewards.commission-money-received.v1 | 1 | rewards | wallet, notifications | commission-money-received |
pin.rewards.commission-distribution-adjusted | pin.rewards.commission-distribution-adjusted.v1 | 1 | rewards | wallet | commission-distribution-adjusted |
pin.rewards.referral-accrual-created | pin.rewards.referral-accruals.v1 | 1 | rewards | notifications | referral-accrual-created |
pin.rewards.referral-accrual-status-changed | pin.rewards.referral-accruals.v1 | 1 | rewards | notifications, wallet | referral-accrual-status-changed |
pin.rewards.referral-accrual-amount-adjusted | pin.rewards.referral-accruals.v1 | 1 | rewards | notifications, wallet | adjust-referral-accrual |
pin.rewards.payout-order-status-changed | pin.rewards.payout-order-status-changed.v1 | 1 | rewards | notifications, wallet | payout-order-status-changed |
pin.rewards.referral-accruals.v1 — общий топик трёх типов событий (created / status-changed /
amount-adjusted), общий key = AccrualId → строгий порядок per-начисление (прецедент — pin.referral.bonds.v1).
wallet
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.wallet.transaction-recorded | pin.wallet.transaction-recorded.v1 | 1 | wallet | notifications | wallet-transaction-recorded |
Проводки платформенных счетов (PlatformSettlement, PlatformRevenue) события не порождают — подписчиков у
них нет. Ключ — AccountId (per-account порядок, монотонный AccountVersion у консюмера).
promotion
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.promotion.purchase-changed | pin.promotion.purchase-changed.v1 | 1 | promotion | catalog, news, notifications | promotion-purchase-changed |
crm / referral / investor-owner
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.crm.lead-created | pin.crm.lead-created.v1 | 1 | crm | notifications, referral | lead-created |
pin.crm.lead-expired | pin.crm.lead-expired.v1 | 1 | crm | notifications | lead-expired |
pin.crm.lead-participants-changed | pin.crm.lead-participants-changed.v1 | 1 | crm | messenger, notifications | lead-participants-changed |
pin.crm.lead-booking-intent-changed | pin.crm.lead-booking-intent-changed.v1 | 1 | crm | notifications, messenger | lead-booking-intent-changed |
pin.crm.fixation-approved | pin.crm.fixation-approved.v1 | 1 | crm | rewards, notifications | fixation-approved |
pin.crm.fixation-rejected | pin.crm.fixation-rejected.v1 | 1 | crm | notifications | fixation-rejected |
pin.crm.deal-created | pin.crm.deal-created.v1 | 1 | crm | messenger, notifications, dev-stats, calendar | deal-created |
pin.crm.deal-stage-changed | pin.crm.deal-stage-changed.v1 | 1 | crm | messenger, notifications | deal-stage-changed |
pin.crm.deal-members-changed | pin.crm.deal-members-changed.v1 | 1 | crm | messenger, notifications, calendar | deal-members-changed |
pin.crm.deal-completed | pin.crm.deal-completed.v1 | 1 | crm | investor-owner, rewards, chessboard, notifications, dev-stats, calendar | deal-completed |
pin.crm.deal-cancelled | pin.crm.deal-cancelled.v1 | 1 | crm | chessboard, rewards, notifications, calendar | deal-cancelled |
pin.crm.booking-created | pin.crm.booking-created.v1 | 1 | crm | chessboard, messenger, dev-stats, calendar | booking-created |
pin.crm.booking-paid | pin.crm.booking-paid.v1 | 1 | crm | messenger, rewards, dev-stats, calendar | booking-paid |
pin.crm.booking-confirmed | pin.crm.booking-confirmed.v1 | 1 | crm | chessboard, calendar | booking-confirmed |
pin.crm.booking-expired | pin.crm.booking-expired.v1 | 1 | crm | chessboard, messenger, calendar | booking-expired |
pin.crm.booking-cancelled | pin.crm.booking-cancelled.v1 | 1 | crm | chessboard, calendar | booking-cancelled |
pin.crm.document-requested | pin.crm.document-requested.v1 | 1 | crm | messenger, notifications | document-requested |
pin.crm.document-status-changed | pin.crm.document-status-changed.v1 | 1 | crm | notifications | document-status-changed |
pin.referral.bond-created | pin.referral.bonds.v1 | 1 | referral | rewards, notifications | bond-created |
pin.referral.bond-closed | pin.referral.bonds.v1 | 1 | referral | rewards, notifications | bond-closed |
pin.referral.lead-attach-requested | pin.referral.lead-attachments.v1 | 1 | referral | crm | lead-attach-requested |
pin.investor-owner.owner-linked | pin.investor-owner.owner-linked.v1 | 1 | investor-owner | profile, notifications | owner-linked |
pin.investor-owner.property-added | pin.investor-owner.property-added.v1 | 1 | investor-owner | user-activity, notifications | property-added |
pin.investor-owner.property-sold | pin.investor-owner.property-sold.v1 | 1 | investor-owner | notifications, user-activity | property-sold |
lead-participants-changed — участники/владение лида (ADR-0071): добавление/снятие участника, смена роли,
передача ведения (Executor/Responsible), каскад увольнения агента (ADR-0072). Несёт ActiveParticipants
(самодостаточная set-реконсиляция) и enum-дельту (Added/Removed/ExecutorChanged).
lead-booking-intent-changed — жизненный цикл намерения бронирования (LeadBookingIntentEntity): инвестор
добавил объект (InvestorAdded, подтверждено сразу) или агент предложил/завёл сделку по объекту
(AgentProposed, ждёт подтверждения инвестором — Flow B), затем подтверждение или снятие. Несёт IntentId,
PropertyObjectId/ProjectId/DeveloperCompanyId, Source, ConfirmedByInvestor, Status и ChangeKind
(Added/Confirmed/Removed); ключ = LeadId. Из подтверждённого намерения + одобренной фиксации
пары «инвестор × застройщик» раскрывается сделка (гейт Draft → Application).
deal-created несёт Status (DealStatus): при выполненном гейте вовлечения застройщика — Application
(состав с SellManager, PaymentMethod обязателен), иначе — Draft (сделка агента с инвестором,
застройщик не вовлечён, SellManager отсутствует, PaymentMethod может быть пуст). Developer-facing
консюмеры (dev-stats, developer-канбан) реагируют только на Application и игнорируют Draft (фильтр
Status != Draft); messenger/notifications реагируют и на Draft. Вовлечение застройщика приходит
позднее как deal-stage-changed (Draft → Application).
fixation-approved — одобрение фиксации это авторизация, а не сделка: застройщик подтверждает право
агента вести клиента по своим объектам, но сделку не создаёт, поэтому событие DealId не несёт.
Одна одобренная фиксация авторизует много сделок пары «клиент × застройщик» (связь 1:N ведётся со стороны
сделки — DealEntity.FixationRequestId).
calendar
Записи (Appointment) и календарные события (CalendarEvent). Ключ — AppointmentId / EventId /
ReminderId (per-entity порядок). PII в payload отсутствует — display-данные консюмер берёт из своей реплики
identity.
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.calendar.appointment-created | pin.calendar.appointment-created.v1 | 1 | calendar | crm, notifications | appointment-created |
pin.calendar.appointment-confirmed | pin.calendar.appointment-confirmed.v1 | 1 | calendar | crm, notifications | appointment-confirmed |
pin.calendar.appointment-cancelled | pin.calendar.appointment-cancelled.v1 | 1 | calendar | crm, notifications | appointment-cancelled |
pin.calendar.appointment-completed | pin.calendar.appointment-completed.v1 | 1 | calendar | crm, notifications | appointment-completed |
pin.calendar.event-created | pin.calendar.event-created.v1 | 1 | calendar | notifications | event-created |
pin.calendar.event-status-changed | pin.calendar.event-status-changed.v1 | 1 | calendar | notifications | event-status-changed |
pin.calendar.event-rescheduled | pin.calendar.event-rescheduled.v1 | 1 | calendar | notifications | event-rescheduled |
pin.calendar.event-owner-changed | pin.calendar.event-owner-changed.v1 | 1 | calendar | notifications | event-owner-changed |
pin.calendar.reminder-due | pin.calendar.reminder-due.v1 | 1 | calendar | notifications | reminder-due |
calendar — консюмер CRM: crm-deal-events (deal-created/deal-members-changed/deal-completed/
deal-cancelled) и crm-booking-events (все booking-*) ведут дедлайны и владельцев календарных событий;
deal-stage-changed не потребляется (этапы канбана на календарь не влияют).
favorites / selections / user-activity / news
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.favorites.favorite-added | pin.favorites.favorite-added.v1 | 1 | favorites | user-activity, dev-stats | favorite-added |
pin.favorites.favorite-removed | pin.favorites.favorite-removed.v1 | 1 | favorites | user-activity | favorite-removed |
pin.favorites.favorites-merged | pin.favorites.favorites-merged.v1 | 1 | favorites | user-activity | favorites-merged |
pin.selections.selection-created | pin.selections.selection-created.v1 | 1 | selections | user-activity, crm, dev-stats | selection-created |
pin.selections.selection-updated | pin.selections.selection-updated.v1 | 1 | selections | user-activity, crm | selection-updated |
pin.selections.selection-item-added | pin.selections.selection-item-added.v1 | 1 | selections | dev-stats, user-activity | selection-item-added |
pin.selections.selection-shared | pin.selections.selection-shared.v1 | 1 | selections | crm, user-activity | selection-shared |
pin.selections.selection-deleted | pin.selections.selection-deleted.v1 | 1 | selections | user-activity | selection-deleted |
pin.user-activity.property-object-view-ended | pin.user-activity.property-object-view-ended.v1 | 1 | user-activity | dev-stats, crm | property-object-view-ended |
pin.user-activity.session-ended | pin.user-activity.session-ended.v1 | 1 | user-activity | dev-stats | session-ended |
pin.user-activity.session-linked | pin.user-activity.session-linked.v1 | 1 | user-activity | crm, favorites | session-linked |
pin.user-activity.action-tracked | pin.user-activity.action-tracked.v1 | 1 | user-activity | crm, dev-stats | action-tracked |
pin.news.post-published | pin.news.post-published.v1 | 1 | news | notifications, user-activity | post-published |
pin.news.comment-added | pin.news.comment-added.v1 | 1 | news | notifications | comment-added |
messenger / notifications / support
| Событие (EventType) | Topic | ContractVersion | Producer | Consumers | Документ |
|---|---|---|---|---|---|
pin.messenger.message-posted | pin.messenger.message-posted.v1 | 1 | messenger | notifications | message-posted |
pin.messenger.deal-chat-status-changed | pin.messenger.deal-chat-status-changed.v1 | 1 | messenger | crm | deal-chat-status-changed |
pin.messenger.contact-request-created | pin.messenger.contact-request-created.v1 | 1 | messenger | notifications | contact-request-created |
pin.messenger.contact-request-accepted | pin.messenger.contact-request-accepted.v1 | 1 | messenger | notifications | contact-request-accepted |
pin.messenger.conference-ended | pin.messenger.conference-ended.v1 | 1 | messenger | crm, notifications, dev-stats | conference-ended |
pin.messenger.call-recording-available | pin.messenger.call-recording-available.v1 | 1 | messenger | crm, notifications | call-recording-available |
pin.notifications.dispatched | pin.notifications.dispatched.v1 | 1 | notifications | — (терминальное; аудит/аналитика) | notification-dispatched |
pin.support.ticket-created | pin.support.ticket-created.v1 | 1 | support | notifications | ticket-created |
pin.support.ticket-status-changed | pin.support.ticket-status-changed.v1 | 1 | support | notifications | ticket-status-changed |
pin.support.ticket-message-posted | pin.support.ticket-message-posted.v1 | 1 | support | notifications | ticket-message-posted |
pin.support.arbitrage-resolved | pin.support.arbitrage-resolved.v1 | 1 | support | notifications | arbitrage-resolved |
dev-stats
dev-stats собственных интеграционных событий не публикует — только потребляет
(property-object-view-ended, session-ended, action-tracked, booking-*, deal-*, lead-created,
favorite-added, selection-item-added + справочники chessboard) для наполнения ClickHouse-facts и
реплик измерений (ADR-0057). Consumers — dev-stats/consumers/.
Обратные ссылки
Автоссылки: где используется этот документ.
- scenarios (1): Кросс-сервисные сценарии PIN (OVR)
- index.md (1): Документация PIN
- registries (1): Реестры PIN (registries)