Producer Readiness Checklist For Async Contract Changes — Проверка готовности producers к безопасному выпуску изменений async contracts
Версия: 1.0
Дата: 24.04.2026
Статус: Готов к обсуждению
Назначение документа
Этот документ фиксирует producer-side release-gate для изменений в async contracts платформы.
Его задача — определить:
- что обязан проверить producer перед выпуском новой
event_version,schema_familychange или semantic change; - как producer должен оценивать downstream impact на consumers, replay, DLQ, observability и external webhook projections;
- какие проверки являются общими для всех release units, а какие зависят от доменного контура;
- как превратить version policy и execution matrices в реальный producer discipline.
Документ не заменяет schema policy, channel catalog или release plan. Он является producer-side checklist, по которому можно принять решение, можно ли безопасно выпускать contract change.
Опорные документы
- Version Evolution Policy For Async Event Contracts — Правила версии, совместимости и replay-дисциплины
- Retry DLQ Replay Matrix By Schema Family — Исполнительная матрица доставки, повторов и восстановления
- Consumer Compatibility Checklist By Release Unit — Проверка готовности consumers к эволюции async contracts
- Webhook Compatibility Checklist For External Async Notifications — Границы внешних async уведомлений и их совместимости
- External Async Projection Catalog By Surface And Partner Class — Каталог внешних async-проекций по surface-ам и классам партнёров
- Schema Draft Package For Top Critical Events — Первый полуформальный schema-layer для критичных async событий
- JSON Schema Like Field Catalogs For Top Critical Events — Полуформальные field catalogs для критичных async событий
- Channel Catalog Drafts By Release Unit — Первые channel families, producers, consumers и delivery expectations
- Release Engineering And Migrations — Релизы, совместимость и эволюция схем
- Observability And Incident Response — Наблюдаемость и реагирование на инциденты
Почему Этот Документ Нужен Отдельно
После появления:
- version evolution policy;
- consumer-side compatibility checklist;
- webhook boundary checklist;
недостаточно проверять только downstream readers.
Нужен отдельный producer-side gate, потому что именно producer:
- выбирает момент изменения контракта;
- определяет shape и semantic drift;
- влияет на replay behavior и version overlap;
- может сломать сразу и internal consumers, и external webhook projections;
- отвечает за то, чтобы новый contract был не просто “логичным локально”, а безопасным для всей цепочки.
Без этого compatibility discipline превращается в одностороннюю обязанность consumers.
Главный Принцип
Producer must prove change safety before emitting new contract behavior.
Это означает:
- producer не может считать изменение безопасным только потому, что JSON остаётся валидным;
- producer обязан думать не только о собственной bounded context логике, но и о downstream truth chain;
- producer change не считается готовым, пока не оценены replay impact, observability impact, compatibility window и external projection consequences.
Общий Producer Readiness Checklist
Перед выпуском изменения producer обязан подтвердить:
- Contract change type is explicitly classified: additive, bounded-semantic, or breaking.
- Existing field meanings remain stable or version bump is introduced.
- Bounded codes retain old meaning or compatibility plan exists.
- Replay impact is assessed explicitly.
- DLQ and retry consequences are understood for affected families.
- Critical consumers have been identified and informed.
- External webhook projection impact has been reviewed, if applicable.
- Observability fields and mismatch signals remain sufficient.
- Version overlap and retirement plan are documented.
- Forward-fix or rollback stance is known before emission starts.
RU-2 Supplier Intake And Canonicalization
Relevant Families
canonical-change- intake-related queue/job contracts
Producer Readiness Checklist
- Producer preserves stable entity identity across contract change.
- Canonical change shape does not silently switch from reference-heavy to snapshot-heavy without compatibility review.
- Producer documents ordering assumptions and causation behavior.
- Replay of historical intake/canonical events is evaluated before emission.
- Change does not silently widen downstream blast radius into offer/publication consumers.
- Quarantine/DLQ implications are known for malformed or partially governed output.
- Producer observability still allows tracing source record to canonical change outcome.
RU-3 Offer And Publication
Relevant Families
offer-publication- projection rebuild jobs/signals
Producer Readiness Checklist
- Producer preserves semantics of
publication_state,integrity_stateandfreshness_state. - New suppression or gating codes are not emitted without bounded downstream interpretation plan.
- Producer does not leak hidden governance internals into bounded publication contract.
- Replay of publication events is evaluated for stale visibility and duplicate projection risk.
- Producer defines how external surfaces should behave during overlap of old and new payload semantics.
- Failure modes are observable before and after cutover.
- Publication change is reviewed against offer-integrity and external webhook projection discipline.
RU-4 Commercial And Quote
Relevant Families
quote-lifecycle
Producer Readiness Checklist
- Producer preserves strict distinction between indicative context and quoted promise.
- New fields do not silently weaken invalidation or expiry meaning.
- Repricing reason classes keep stable semantics or trigger version change.
- Replay of quote events is reviewed for booking guard, UI drift and webhook projection effects.
- Producer confirms how quote state changes map to external bounded notifications.
- Contract evolution does not create ambiguous commercial truth during version overlap.
- Observability keeps quote lineage, version and invalidation cause visible.
RU-5 Booking Commit
Relevant Families
booking-transitions
Producer Readiness Checklist
- Producer preserves distinction between confirmed, pending and uncertain external states.
- New optional fields do not imply new success semantics by accident.
- Recovery-job emissions remain distinct from domain booking transitions.
- Replay of booking events is reviewed for support, settlement and webhook consequences.
- Producer defines incident-grade handling for mismatch between emitted event and transactional truth.
- Version overlap does not create conflicting booking narratives for downstream consumers.
- External booking-status projections remain bounded and support-safe.
RU-6 Post-Booking And Clearing
Relevant Families
post-booking-casesettlement-reconciliation
Producer Readiness Checklist
- Producer preserves distinction between service-case truth and financial truth.
- New fields do not silently change discrepancy or clearing meaning.
- Duplicate-sensitive financial emissions are reviewed against retry/DLQ policy before release.
- Replay of settlement-related families has explicit finance-safe stance.
- Producer defines which events may project to external notification and which must remain internal.
- Failure and mismatch signals are visible to finance/ops contours.
- Version change does not create silent divergence between booking narrative and financial narrative.
RU-7 Controlled External Surface
Relevant Families
usage-governance- externally visible integration signals derived from internal families
Producer Readiness Checklist
- Producer preserves bounded semantics of
governance_stateandenforcement_class. - New governance codes do not accidentally widen permissive behavior.
- Tenant-aware and partner-aware policy impact is reviewed before emission.
- Producer confirms whether change affects webhook compatibility or pull-reconciliation behavior.
- Version overlap is documented for external-surface operators and partner migration path.
- Observability reveals contradictions between enforcement decision and emitted signal.
- Producer does not leak internal enforcement matrix details into external-facing contracts.
Cross-Cutting Semantic Drift Checklist
Для любого release unit change producer обязан подтвердить:
- Did any existing field keep the same name but change meaning?
- Did any bounded code gain a new interpretation that old consumers may misread?
- Did any reference-heavy payload become snapshot-heavy or vice versa?
- Did event ordering or causation assumptions change?
- If yes, is this still truly additive?
Cross-Cutting Replay Checklist
Для любого release unit change producer обязан подтвердить:
- Can historical replay produce different downstream truth after the change?
- Which consumers and projections must be revalidated before replay is allowed?
- Are replay flows distinguishable from live flows in observability?
- Is finance/support/operator review required for replay of this family?
- Can replay accidentally trigger external webhook duplication or contradiction?
Cross-Cutting External Projection Checklist
Если family участвует во внешнем async surface, producer обязан подтвердить:
- Does internal change alter external projection semantics?
- Does webhook payload remain bounded and partner-comprehensible?
- Are retry/redelivery expectations still valid?
- Can old and new projection versions coexist safely?
- Is partner-visible pull reconciliation still sufficient after the change?
Release Gate Use
Этот checklist должен использоваться как producer-side release gate в следующих случаях:
- schema-family change;
- event_version bump;
- new bounded code introduction in critical families;
- semantic reinterpretation risk of existing fields;
- producer logic change on replay-sensitive family;
- change that affects external async projection.
What Must Stay Out Of Scope
Пока не нужно:
- превращать checklist в low-level implementation task list;
- описывать broker-specific deployment mechanics;
- считать, что producer can self-certify without consumer and external-boundary review.
Что Должно Появиться Следом
Следующий практический слой после этого документа:
- External Async Projection Catalog By Surface And Partner Class — Каталог внешних async-проекций по surface-ам и классам партнёров
- bounded webhook payload examples for externally exposed families;
- release-gate templates pairing producer and consumer readiness;
- future formal producer change request template for async contract evolution.
Этот документ замыкает producer-side discipline и делает async contract evolution заметно более пригодной для industrial release governance.
Уточнение под Фазы 4–6 (28.04.2026)
Producer readiness для async contract changes должна включать:
- Каноничные имена событий per domain — не «придумывать локально» (см. initial-event-taxonomy.md);
- 6 классов событий с разными guarantees (см. eventing-and-queue-baseline.md);
- Tier-зависимое поведение (см. api-as-product.md) — partner class определяет visibility;
- Webhook HMAC signing (см. security-architecture.md);
- Release gates (см. release-engineering-and-migrations.md) — error budget check, SLA gates, audit trail.
Каноничные источники структур событий — в специализированных reference-документах фаз 4–6.
Уточнение выполнено через no-destruction.