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.
2.9 KiB
2.9 KiB
Go MQTT Vending Backend Resources
Knowledge
- Go
net/httppackage Primary API reference forServeMux, request path values, handlers, server timeouts, and shutdown; use when implementing or reviewing the HTTP boundary. - Go 1.22 routing enhancements
Go team's explanation of method-aware routes and path wildcards; use to understand patterns such as
POST /devices/{deviceID}/commands. - RFC 9110, HTTP Semantics Normative definition of HTTP status semantics, including 202 Accepted; use when designing API responses for asynchronous device work.
- OASIS MQTT Version 5.0 Standard Normative MQTT 5 packet and reason-code behavior; use to distinguish a QoS 1 PUBACK from application-level device completion.
- Repository Section 8 — HTTP commands The existing end-to-end lab implementation and exercises; use as the code reference after attempting the focused teaching lesson.
- Repository Sections 4–5 — topics, contracts, and validation Section 4 defines the topic hierarchy and typed builders; Section 5 provides the complete payload contracts, topic parsing, decoding, and validation examples.
- Repository Section 5A — backend message processing Complete heartbeat service/store slice and freshness semantics for the application boundary lesson.
- Repository Section 6 — concurrency and cancellation Bounded queue, dispatch routing, acknowledgement timing, and shutdown implementation.
- Repository Section 7 — command/response Command state machine, correlation, device deduplication, and failure cases.
- Go
contextpackage Standard cancellation and deadline propagation used by workers and MQTT operations. - Go
syncpackage Mutex and synchronization semantics for the shared application stores and pool lifecycle. - Paho Go MQTT v0.23.0 Version-pinned MQTT 5 client API reference; use the matching package docs and source when interpreting callback and acknowledgement behavior.
Wisdom (Communities)
- Go Forum Community discussion for Go design and debugging questions; bring a minimal reproducer and explain what evidence you observed.
Gaps
- The HTML lessons focus on one skill at a time; use the matching Markdown source for full implementation and tests.
- The first pass does not claim mastery. Select the next lesson or review based on the learner's answers and code exercise.