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

AsyncAPI for Event Contracts

Review and falsify one AsyncAPI event contract: model channel, messages, send/receive operations, schema and relevant binding metadata, validate local examples, and record what transport/delivery semantics remain outside the document. می‌تواند «AsyncAPI برای Event Contracts» را برای یک domain محدود مدل کند و constraint، compatibility یا recovery evidence لازم را مشخص کند.

AsyncAPI برای Event Contracts — fa-IR

Lesson summary

Review and falsify one AsyncAPI event contract: model channel, messages, send/receive operations, schema and relevant binding metadata, validate local examples, and record what transport/delivery semantics remain outside the document.

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

This lesson produces

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

Who it is for

Foundation

Worked baseline, explicit evidence table, local fixture and one guided failure probe.

Repair

Reduce to one broken contract/protocol assumption, observe it, repair it, then restore the full case.

Experienced

Compress introductory syntax; require independent compatibility/reliability decision, negative evidence and residual-limit statement.

Prerequisites

_Locale: en-US · Lesson: DAT-014 · Public order: 71_

Outcome and working artifact

This lesson produces a AsyncAPI Event Contract Review Record v1: a decision artifact that separates observations, assumptions, limits, and required evidence. The goal is a transferable model, not memorized tool names.

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

Boundary model

An event payload schema is only one part of an event contract. The contract also needs the channel and address, the described application's operation and action, message identity, protocol binding assumptions, examples, and explicit limits on delivery guarantees. AsyncAPI makes these parts inspectable; it does not operate the broker or prove durability and ordering.

Keep three labels throughout the work: observed, bounded inference, and needs verification. When evidence is unavailable, record unknown. A product name or a passing happy path is not a substitute for evidence.

1. Model the channel before the payload

A message has meaning in a communication context. Record the logical channel, runtime address rule, and which application the document describes.

2. Send and receive are perspective-bound

An operation action is interpreted relative to the described application. Avoid absolute producer/consumer labels unless the system boundary is explicit.

3. Message identity matters

Name, headers, correlation information, content type, payload schema, and examples should agree. Reusing a payload shape does not automatically make two messages equivalent.

4. Bindings narrow protocol assumptions

A Kafka, AMQP, MQTT, or HTTP binding can record protocol-specific metadata. It does not prove that deployed broker configuration matches the document.

5. Reliability remains an implementation decision

Exactly-once, ordering, retention, retry, dead-letter handling, and idempotence require separate evidence. Do not infer them from a valid AsyncAPI file.

Five-step method

  1. Declare the described application and its system boundary.
  2. Define channel/address, message identity, headers, payload schema, and examples.
  3. Add operations and interpret send/receive from that application's perspective.
  4. Validate examples and deliberately break a message reference, operation action, and binding assumption.
  5. Record transport and delivery properties that remain outside the document and need deployment evidence.

Worked case

The Orders service document describes channel orders.created and a receive operation because the described application consumes the message. The OrderCreated message has a correlation ID, JSON payload schema, and valid example. One mutation points the operation to PaymentCaptured; another flips the action while keeping the same application perspective. Both are caught in review. A Kafka binding note is preserved as an assumption, while retry and dead-letter policy remain explicitly outside the document proof.

Decision and evidence matrix

ConcernBoundary or ownerEvidenceDecision or limitation
ApplicationOrders projectionBoundary declaredActions use this perspective
Channelorders.createdAddress and message linkRuntime mapping still verified separately
MessageOrderCreatedHeaders/payload/exampleIdentity is more than payload shape
BindingKafka metadataDocumented assumptionBroker config not proved
DeliveryRetry/order/DLQNo local proofSeparate operational decision

Failure probes and repair

  • An AsyncAPI document proves exactly-once delivery, ordering or broker durability.
  • A message payload schema is the complete event contract.
  • The action send/receive is an absolute system-wide producer/consumer label independent of the described application.
  • Protocol bindings remove the need to verify deployed broker configuration.

For each statement, narrow the claim, create a counterexample, and name the observation that could confirm or reject it.

Transfer challenge

Change the scenario so that one assumption in the worked case no longer holds. Rebuild the AsyncAPI Event Contract Review Record v1 without copying the earlier decision, then explain what changed in the input and what stayed stable in the decision rule.

What this does not prove

This lesson does not claim certification, production guarantees, or coverage of every implementation. Its conclusion is valid only within the scenario boundary, dated sources, and recorded observations.

Self-check

  • [ ] Did I separate responsibilities from framework or tool names?
  • [ ] Did I state at least one failure probe and its predicted observable?
  • [ ] Are fact, inference, and design choice visibly separated?
  • [ ] Did I record non-claims and missing evidence?
  • [ ] Did I complete transfer in a changed context without a prepared answer?

Sources and freshness boundary

Sources were reviewed for the frozen Bible as of 2026-09-19. A review_due date triggers a versioned requalification; it does not authorize silent in-place edits.

  • 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)

Assessment

There is no answer key in this lesson pack; answer it yourself and mark honestly. "Needs review" sends the lesson to your review queue.

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 ✗
Assessment 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.

References & freshness

· 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

Lab files

Build AsyncAPI Event Contract Review Record v1 from the safe local fixture. First state a prediction. Then record the baseline, run or simulate the declared failure probes against the fixture, and preserve both positive and negative observations. Complete the transfer case without copying the worked lesson decision.

The starter intentionally does not choose the final classification or risk decision. Edit evaluate_record.py and the evidence template. Run python3 ../run_checks.py from this directory's parent to verify the environment and file shape; those checks do not grade your substantive decision.

Safety boundary: No production system/data, no external account/service dependency, and all failure probes must be bounded and deterministic.

Lesson media & slides

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

Teaching files (download)

XLSXAsyncAPI Event Contract Review Record v1 v1.0.0.xlsxTeaching files (download)
DOCXAsyncAPI Event Contract Review Record v1 WORKSHEET v1.0.0.docxTeaching files (download)
PDFAsyncAPI Event Contract Review Record v1 WORKSHEET v1.0.0.pdfTeaching files (download)