Move lesson source into the teaching structure, align the course path with the learner's Go and DevOps experience, and add the interactive lesson guides. Add advanced DevOps lifecycle study as a separate section. Bound MQTT message work and drain accepted jobs during shutdown; align the backend implementation with the revised course through Section 6.
46 lines
2.6 KiB
HTML
46 lines
2.6 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>HTTP and MQTT Evidence — Quick Reference</title>
|
|
<link rel="stylesheet" href="../assets/lesson.css">
|
|
</head>
|
|
<body>
|
|
<main class="page">
|
|
<p class="eyebrow">Robot Market · Quick reference</p>
|
|
<h1>Three acknowledgements, three meanings</h1>
|
|
<p class="dek">When a backend tells a caller that a device command is progressing, name the component that produced each piece of evidence.</p>
|
|
|
|
<section class="card">
|
|
<h2>Evidence map</h2>
|
|
<table>
|
|
<thead><tr><th>Evidence</th><th>Who produced it?</th><th>What it supports</th><th>What it does not prove</th></tr></thead>
|
|
<tbody>
|
|
<tr><th>HTTP 202</th><td>Go HTTP server</td><td>The request was accepted for processing.</td><td>Broker publication or device execution.</td></tr>
|
|
<tr><th>QoS 1 PUBACK</th><td>MQTT receiver on this hop</td><td>The corresponding QoS 1 PUBLISH exchange was acknowledged, subject to the reason code.</td><td>That a device accepted or completed the business action.</td></tr>
|
|
<tr><th>Command result</th><td>Device application, delivered back through MQTT</td><td>The result contract reports accepted, completed, or rejected work.</td><td>That the report is authentic without identity and authorization checks.</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<div class="flow" aria-label="Evidence sequence">
|
|
<div class="step">API admission<br><strong>HTTP 202</strong></div><span class="arrow">→</span>
|
|
<div class="step">Broker hop<br><strong>PUBACK</strong></div><span class="arrow">→</span>
|
|
<div class="step">Device application<br><strong>Command result</strong></div>
|
|
</div>
|
|
|
|
<section class="card callout">
|
|
<h2>Use this sentence</h2>
|
|
<p>“The API accepted command <code>C</code>. The broker acknowledged the publish. The device result is still pending.”</p>
|
|
<p class="small">If the API process keeps command state only in memory, an HTTP 202 is not a promise that the record survives a process restart.</p>
|
|
</section>
|
|
|
|
<footer>
|
|
<p><a href="../lessons/0008-http-acceptance-vs-completion.html">Open Lesson 8</a> · <a href="../course-source/07-command-response.md">Section 7 source lesson</a></p>
|
|
<p>Primary sources: <a href="https://datatracker.ietf.org/doc/rfc9110/">RFC 9110 §15.3.3</a> and the <a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html#_Toc3901120">OASIS MQTT 5.0 specification</a>.</p>
|
|
</footer>
|
|
</main>
|
|
</body>
|
|
</html>
|