Payload Family Outlines For High-Value Channels — Первые bounded payload shapes для ключевых async channels
Версия: 1.0
Дата: 24.04.2026
Статус: Готов к обсуждению
Назначение документа
Этот документ фиксирует первые bounded payload family outlines для наиболее значимых async channels платформы.
Его задача — определить:
- какие payload families должны быть описаны первыми;
- какие поля обязательны на уровне domain-significant событий;
- где payload должен быть thin signal, а где richer state snapshot;
- как correlation, actor, tenant, financial and operational context должны попадать в события;
- какие payload shapes уже должны быть согласованы с domain model, contract package и channel catalog.
Документ не является финальным schema registry или полной AsyncAPI payload спецификацией. Он является первым shape-level baseline для high-value event families.
Опорные документы
- AsyncAPI Skeletons And Event Envelopes — Первый bounded asynchronous contract artifact
- Channel Catalog Drafts By Release Unit — Первые channel families, producers, consumers и delivery expectations
- Initial Contract Package — Первый implementation-ready пакет контрактов платформы
- Initial Event Taxonomy — Первичная таксономия событий платформы
- Offer Pricing Booking Semantics — Семантика предложения, цены и бронирования
- Commercial Model — Коммерческая модель, цена, settlement и канальные условия
- Partner Finance And Clearing — Балансы, лимиты, взаиморасчёты и финансовая дисциплина партнёров
- Post-Booking Lifecycle — Изменения, отмены, инциденты и сопровождение после продажи
- Payload Examples For Top Critical Events — Первые example payloads для ключевых async событий
- Schema Draft Package For Top Critical Events — Первый полуформальный schema-layer для критичных async событий
Почему Этот Документ Нужен Отдельно
После появления:
- event taxonomy;
- async skeleton;
- channel catalog draft;
уже недостаточно понимать только channel families и producers/consumers.
Нужен следующий bounded слой, который впервые отвечает:
- какой payload shape мы вообще ожидаем от high-value event family;
- что должно быть в metadata envelope, а что в domain payload;
- где допустим только reference-based signal, а где нужен richer payload snapshot;
- какие поля нельзя опускать без потери observability, replayability или supportability.
Без этого канал может быть “формально описан”, но всё равно остаться слишком расплывчатым для реальной implementation discipline.
Главный Принцип
High-value async payload должен быть:
- semantic, not transport-noisy;
- correlation-complete;
- tenant-aware where relevant;
- actor-aware where relevant;
- replay-safe where required;
- small enough to avoid accidental payload bloat;
- rich enough to support downstream decision-making without blind lookup chains.
Envelope-Level Field Families
Для first-wave high-value events уже должны быть различимы следующие группы полей:
1. Identity Fields
event_nameevent_versionevent_idoccurred_atproducer
2. Correlation Fields
correlation_idcausation_id, where applicablerequest_id, where applicableactor_context_id, where applicable
3. Scope Fields
tenant_id, where applicableworkspace_id, where applicablesurface_scope, where relevant
4. Domain Reference Fields
- entity identifiers central to the event family
- minimal reference to parent/related transaction when relevant
5. Delivery/Replay Hints
delivery_classreplay_sensitivityschema_family
Payload Family 1. Canonical Change Payloads
Target Families
canonical.property.*canonical.product.*canonical.mapping.changed
Minimal Domain Shape
canonical_entity_typecanonical_entity_idchange_kindsource_change_basisgovernance_state, where relevant
Optional Rich Fields
changed_field_groupssource_trace_refsmapping_decision_ref
Design Rule
Canonical change payloadы не должны тащить весь canonical object snapshot по умолчанию.
Они должны быть:
- reconstruction-friendly;
- enough for downstream invalidation/materialization decisions;
- not a hidden substitute for read models.
Payload Family 2. Offer Publication Payloads
Target Families
offer.materializedoffer.updatedoffer.integrity.blockedoffer.publication.allowedoffer.publication.suppressed
Minimal Domain Shape
offer_idoffer_revisionproperty_idpublication_stateintegrity_statefreshness_state
Optional Rich Fields
suppression_reason_codesintegrity_rule_refspublication_scopeaffected_surface_classes
Design Rule
Publication payloadы должны быть downstream-usable для projections, но не должны раскрывать raw supplier or hidden governance internals.
Payload Family 3. Quote Lifecycle Payloads
Target Families
quote.createdquote.expiredquote.invalidatedquote.repricing.requiredquote.repriced
Minimal Domain Shape
quote_idoffer_idquote_stateprice_basis_refcurrency_codequote_valid_until, where relevantcommercial_context_ref
Required Correlation Additions
tenant_idworkspace_id, where relevantactor_context_id, where relevant
Optional Rich Fields
repricing_reason_codeinvalidated_by_event_refprice_view_classquote_visibility_scope
Design Rule
Quote payloadы не должны быть full monetary breakdown dump по умолчанию.
Они должны:
- однозначно различать quoted promise и indicative context;
- быть пригодными для UI refresh, booking guards и support trace;
- не подменять audited storage truth.
Payload Family 4. Booking Transition Payloads
Target Families
booking.intent.createdbooking.confirmation.pendingbooking.confirmedbooking.partially.failedbooking.unknown.external.statebooking.cancel.requestedbooking.cancelled
Minimal Domain Shape
booking_idbooking_statequote_id, where applicablebooking_reference_scopesupplier_confirmation_statetransactional_outcome_class
Required Operational Fields
support_visibility_classmanual_intervention_requiredrecovery_path_ref, where applicable
Optional Rich Fields
supplier_booking_ref, where availablefailure_reason_codeunknown_state_reason_codecancellation_path_class
Design Rule
Booking payloadы должны быть operationally usable.
Нельзя делать их настолько thin, что downstream support or post-booking contours вынуждены читать историю по косвенным признакам.
Payload Family 5. Post-Booking Case Payloads
Target Families
postbooking.change.requestedpostbooking.support.case.openedpostbooking.support.case.resolvedpostbooking.disruption.detected
Minimal Domain Shape
post_booking_case_idbooking_idcase_typecase_stateservice_owner_scopecustomer_impact_class
Optional Rich Fields
supplier_action_requiredsla_bucketresolution_path_classdisruption_severity
Design Rule
Post-booking payloadы должны быть case-centric, а не booking-centric.
Они должны помогать service operations, а не только “доклеиваться” к booking timeline.
Payload Family 6. Settlement And Reconciliation Payloads
Target Families
settlement.event.postedsettlement.adjustment.requiredreconciliation.case.openedreconciliation.case.resolved
Minimal Domain Shape
financial_event_idorreconciliation_case_idbooking_id, where applicablefinancial_state_classcurrency_codeamount_scope_classfinancial_counterparty_scope
Required Financial Fields
settlement_basis_refclearing_context_ref, where applicablediscrepancy_class, where applicable
Optional Rich Fields
adjustment_reason_codereconciliation_owner_scopefx_context_refrounding_context_ref
Design Rule
Financial payloadы должны быть traceable and safe for downstream financial operations, но не должны по умолчанию становиться full accounting ledger export.
Payload Family 7. Usage Governance Payloads
Target Families
usage.quota.nearing_limitusage.quota.exhaustedusage.profile.degradedtenant.surface.restricted
Minimal Domain Shape
tenant_idusage_profile_id, where applicablegovernance_stateaffected_surface_scopeenforcement_class
Optional Rich Fields
quota_window_refdegradation_reason_codethrottle_policy_refclearing_block_ref, where applicable
Design Rule
Usage governance payloadы должны быть sufficient for surface enforcement and partner success operations, но не должны становиться low-level metrics dump.
Reference-Heavy Vs Snapshot-Heavy Policy
Reference-Heavy Families
Предпочтительны для:
- canonical changes;
- policy changes;
- governance signals.
Richer Snapshot Families
Нужны для:
- quote lifecycle;
- booking transitions;
- post-booking case lifecycle;
- settlement/reconciliation events.
Correlation Completeness Rules
Для high-value payload families должны действовать следующие правила:
- если событие затрагивает external promise, нужен
correlation_id; - если событие влияет на actor-visible path, нужен
actor_context_idwhere relevant; - если событие tenant-sensitive, нужен
tenant_id; - если событие financial or post-booking critical, нужен link to upstream booking/quote/case/financial basis.
What Must Stay Out Of Scope
Пока не нужно:
- фиксировать exact JSON schema для каждого поля;
- описывать every optional extension field;
- смешивать payload families с broker serialization details;
- моделировать binary/blob delivery;
- превращать outline в full event catalog.
Что Должно Появиться Следом
Следующий практический слой после этого документа:
- Payload Examples For Top Critical Events — Первые example payloads для ключевых async событий
- payload examples for the top 5 critical event families;
- first schema-draft package for top critical events;
- retry/DLQ/replay matrix by payload family and channel class;
- webhook notification payload policy for external-facing async flows;
- first schema-draft package for
quote,booking,offer publication,settlement,usage governance.
Этот документ создаёт первый shape-level baseline для high-value async channels и связывает channel catalog с будущими более формальными payload schemas.
Уточнение под Фазы 4–6 (28.04.2026)
Документ опубликован 24.04.2026 (Фаза 3). После Фаз 4–6 опубликованы каноничные payload structures для всех критичных high-value channels — использовать актуальные структуры из специализированных доменов:
- Booking → booking-state-machine.md
- Payment → payment-domain.md
- Tour saga → tour-builder-operational-model.md
- Notifications → notification-and-communication.md
- Tenant isolation → multi-tenant-isolation-strength.md
- Security audit → security-architecture.md
- DR / capacity / SLA → disaster-recovery-and-capacity.md, sla-and-on-call-model.md, runbooks-incident-playbooks.md
- Compliance → compliance-and-legal.md
Каноничный сводный каталог имён — initial-event-taxonomy.md. Каноничные guarantees per event class — eventing-and-queue-baseline.md (6 классов).
Уточнение выполнено через no-destruction.