داده، SQL، قراردادها و ماشین حالت · فصل ۵ — JSON Schema، OpenAPI، AsyncAPI، Protobuf و gRPC · 71

AsyncAPI برای Event Contracts

داده را ذخیره یا query می‌کند اما constraint، consistency، compatibility و recovery را به یک contract مهندسی تبدیل نمی‌کند. موضوع جاری: «AsyncAPI برای Event Contracts». می‌تواند «AsyncAPI برای Event Contracts» را برای یک domain محدود مدل کند و constraint، compatibility یا recovery evidence لازم را مشخص کند.

AsyncAPI for Event Contracts — en-US

خلاصهٔ درس

داده را ذخیره یا query می‌کند اما constraint، consistency، compatibility و recovery را به یک contract مهندسی تبدیل نمی‌کند. موضوع جاری: «AsyncAPI برای Event Contracts».

می‌تواند «AsyncAPI برای Event Contracts» را برای یک domain محدود مدل کند و constraint، compatibility یا recovery evidence لازم را مشخص کند.

خروجی این درس

می‌تواند «AsyncAPI برای Event Contracts» را برای یک domain محدود مدل کند و constraint، compatibility یا recovery evidence لازم را مشخص کند.

پیش‌نیازها

_Locale: fa-IR · Lesson: DAT-014 · Public order: 71_

خروجی و artifact کاری

این درس برای ساختن رکورد بازبینی قرارداد رویداد AsyncAPI نسخه ۱ است: یک artifact تصمیم که مشاهده، فرض، محدودیت و evidence موردنیاز را از هم جدا می‌کند. هدف حفظ یک مدل قابل‌انتقال است، نه حفظ‌کردن نام ابزارها.

می‌تواند «AsyncAPI برای Event Contracts» را برای یک domain محدود مدل کند و constraint، compatibility یا recovery evidence لازم را مشخص کند.

مدل مرزی

payload schema فقط یک بخش event contract است. قرارداد به channel/address، operation و action از دید application توصیف‌شده، message identity، فرض‌های protocol binding، example و مرز صریح delivery guarantee نیاز دارد. AsyncAPI این بخش‌ها را inspectable می‌کند؛ broker را اجرا و durability یا ordering را ثابت نمی‌کند.

در هر بخش سه برچسب نگه دارید: «مشاهده‌شده»، «استنباط محدود» و «نیازمند بررسی». اگر evidence در دسترس نیست، نتیجه را unknown ثبت کنید؛ نام ابزار یا pass شدن یک happy path جای evidence را نمی‌گیرد.

1. پیش از payload، channel را مدل کنید

message در context ارتباطی معنا دارد. logical channel، rule مربوط به runtime address و application توصیف‌شده را ثبت کنید.

2. send و receive به perspective وابسته‌اند

action هر operation نسبت به application توصیف‌شده تفسیر می‌شود. بدون system boundary صریح، label مطلق producer/consumer ندهید.

3. Message identity مهم است

name، header، correlation، content type، payload schema و example باید سازگار باشند. shape مشترک payload دو message را خودکار معادل نمی‌کند.

4. Binding فرض protocol را محدود می‌کند

binding مربوط به Kafka، AMQP، MQTT یا HTTP metadata خاص protocol را ثبت می‌کند، اما انطباق configuration واقعی broker را ثابت نمی‌کند.

5. Reliability تصمیم جداست

exactly-once، ordering، retention، retry، dead-letter و idempotence evidence مستقل می‌خواهند و از valid بودن AsyncAPI نتیجه نمی‌شوند.

روش پنج‌مرحله‌ای

  1. application توصیف‌شده و system boundary آن را اعلام کنید.
  2. channel/address، message identity، header، payload schema و example را بسازید.
  3. operationها را اضافه و send/receive را از perspective همان application تفسیر کنید.
  4. exampleها را validate و reference message، operation action و binding assumption را عمداً خراب کنید.
  5. ویژگی‌های transport/delivery خارج از document را ثبت کنید تا evidence deployment جدا بگیرند.

مثال حل‌شده

document مربوط به Orders service، channel orders.created و operation با action نوع receive دارد، چون application توصیف‌شده مصرف‌کننده message است. OrderCreated دارای correlation ID، JSON payload schema و example معتبر است. یک mutation، operation را به PaymentCaptured وصل می‌کند و دیگری action را با همان perspective برعکس می‌کند؛ review هر دو را می‌گیرد. Kafka binding فقط assumption است و retry/dead-letter بیرون proof می‌ماند.

ماتریس تصمیم و evidence

موضوعمرز/مالکevidenceتصمیم یا محدودیت
applicationOrders projectionboundary اعلام شدactionها با این perspective
channelorders.createdaddress و link messageruntime mapping جدا verify شود
messageOrderCreatedheader/payload/exampleidentity فراتر از payload shape
bindingmetadata مربوط به Kafkaassumption مستندconfig broker ثابت نشد
deliveryretry/order/DLQproof محلی نداردتصمیم operational جدا

خطاهای محتمل و روش اصلاح

  • نتیجه‌گیری exactly-once یا ordering از valid بودن document
  • تقلیل event contract به payload schema
  • تفسیر مطلق send/receive بدون perspective application
  • فرض انطباق broker صرفاً به‌دلیل وجود binding

برای هر مورد، ادعا را محدود کنید، یک counterexample بسازید و بنویسید کدام مشاهده می‌تواند آن را تأیید یا رد کند.

تمرین انتقال

سناریو را طوری تغییر دهید که یکی از فرض‌های مثال دیگر برقرار نباشد. بدون کپی‌کردن تصمیم قبلی، رکورد بازبینی قرارداد رویداد AsyncAPI نسخه ۱ را دوباره بسازید؛ سپس تفاوت decision rule و تفاوت دادهٔ ورودی را توضیح دهید.

این درس چه چیزی را ثابت نمی‌کند

این درس certification، تضمین production یا پوشش همه implementationها را ادعا نمی‌کند. نتیجه فقط در مرز سناریو، sourceهای تاریخ‌دار و observationهای ثبت‌شده معتبر است.

خودسنجی

  • [ ] آیا مسئولیت‌ها را از نام framework یا tool جدا کرده‌ام؟
  • [ ] آیا دست‌کم یک failure probe و نتیجه موردانتظار آن را نوشته‌ام؟
  • [ ] آیا fact، inference و design choice از هم مشخص‌اند؟
  • [ ] آیا non-claim و evidence گمشده را ثبت کرده‌ام؟
  • [ ] آیا transfer را روی context تغییرکرده و بدون پاسخ آماده انجام داده‌ام؟

منابع و مرز تازگی

sourceها در 2026-09-19 طبق Bible منجمدشده مرور شده‌اند. تاریخ review_due یک trigger برای بازبینی نسخه‌ای است؛ هیچ بسته‌ای نباید درجا و بدون نسخه جدید تغییر کند.

  • ASYNCAPI-3.1 — Current AsyncAPI 3.1.0 specification: channels, messages, operations, action semantics and bindings. (https://www.asyncapi.com/docs/reference/specification/v3.1.0; review: 2026-10-17)
  • ASYNCAPI-REL-3.1 — Official 3.1.0 release note and current-version context. (https://www.asyncapi.com/blog/release-notes-3.1.0; review: 2026-10-17)

ارزیابی

پاسخ‌نامه‌ی این درس در بسته‌ی آموزش وجود ندارد؛ خودت جواب بده و صادقانه علامت بزن. «نیاز به مرور» درس را به صف تکرار می‌فرستد.

DAT-014-S1 retrieval

lesson ✗AI ✗notes ✗

DAT-014-S2 application

lesson ✗AI ✗notes ✗

DAT-014-S3 diagnosis

lesson ✗AI ✗notes ✗

DAT-014-S4 decision

lesson ✗AI ✗notes ✗

DAT-014-S5 transfer

lesson ✗AI ✗notes ✗
ملاک‌های ارزیابی (rubric)
DimensionCriticalSufficient evidence
contract/protocol correctnessyesExplanation preserves version/dialect, compatibility/reliability and evidence semantics.
evidence qualityyesPositive, negative and change/repair observations are traceable and separated from inference.
scope disciplineyesAdjacent outcomes and unsupported tool/runtime generalizations are deferred.
transfer independenceyesChanged-context task is solved without decisive scaffold.

A submission passes only when every critical dimension is sufficient and the learner states missing evidence honestly. AI suggestions are not observed evidence; the learner remains accountable for the final bounded judgment.

منابع و تازگی

· TOOL_VOLATILE
Current AsyncAPI 3.1.0 specification: channels, messages, operations, action semantics and bindings.
· TOOL_VOLATILE
Official 3.1.0 release note and current-version context.

مطالعهٔ موارد (case studies)

فایل‌های آزمایشگاه

با fixture امن محلی، رکورد بازبینی قرارداد رویداد AsyncAPI نسخه ۱ را بسازید. ابتدا prediction را بنویسید؛ سپس baseline و failure probeهای اعلام‌شده را ثبت کنید و observation مثبت و منفی را نگه دارید. transfer را بدون کپی تصمیم مثال انجام دهید.

starter عمداً classification یا risk decision نهایی را انتخاب نمی‌کند. evaluate_record.py و evidence template را تکمیل کنید. اجرای python3 ../run_checks.py فقط environment و شکل fileها را بررسی می‌کند و تصمیم محتوایی شما را grade نمی‌کند.

مرز ایمنی: No production system/data, no external account/service dependency, and all failure probes must be bounded and deterministic.

رسانه و اسلایدهای درس

MAKNOW_DAT-014_DECISION_EVIDENCE_TABLE_v1.0.0.svg
DECISION EVIDENCE TABLE v1.0.0.svg
MAKNOW_DAT-014_FAILURE_REPAIR_v1.0.0.svg
FAILURE REPAIR v1.0.0.svg
MAKNOW_DAT-014_PRIMARY_MODEL_v1.0.0.svg
PRIMARY MODEL v1.0.0.svg
MAKNOW_DAT-014_WORKED_EXAMPLE_v1.0.0.svg
WORKED EXAMPLE v1.0.0.svg

فایل‌های آموزشی (دانلود)

XLSXAsyncAPI Event Contract Review Record v1 v1.0.0.xlsxفایل‌های آموزشی (دانلود)
DOCXAsyncAPI Event Contract Review Record v1 WORKSHEET v1.0.0.docxفایل‌های آموزشی (دانلود)
PDFAsyncAPI Event Contract Review Record v1 WORKSHEET v1.0.0.pdfفایل‌های آموزشی (دانلود)