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.
39 lines
2.9 KiB
Markdown
39 lines
2.9 KiB
Markdown
# Go MQTT Vending Backend Resources
|
||
|
||
## Knowledge
|
||
|
||
- [Go `net/http` package](https://pkg.go.dev/net/http)
|
||
Primary API reference for `ServeMux`, request path values, handlers, server timeouts, and shutdown; use when implementing or reviewing the HTTP boundary.
|
||
- [Go 1.22 routing enhancements](https://go.dev/blog/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](https://datatracker.ietf.org/doc/rfc9110/)
|
||
Normative definition of HTTP status semantics, including 202 Accepted; use when designing API responses for asynchronous device work.
|
||
- [OASIS MQTT Version 5.0 Standard](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html)
|
||
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](course-source/08-http-commands.md)
|
||
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](course-source/04-publish-subscribe-simulator.md)
|
||
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](course-source/05a-backend-message-processing.md)
|
||
Complete heartbeat service/store slice and freshness semantics for the application boundary lesson.
|
||
- [Repository Section 6 — concurrency and cancellation](course-source/06-concurrency-cancellation.md)
|
||
Bounded queue, dispatch routing, acknowledgement timing, and shutdown implementation.
|
||
- [Repository Section 7 — command/response](course-source/07-command-response.md)
|
||
Command state machine, correlation, device deduplication, and failure cases.
|
||
- [Go `context` package](https://pkg.go.dev/context)
|
||
Standard cancellation and deadline propagation used by workers and MQTT operations.
|
||
- [Go `sync` package](https://pkg.go.dev/sync)
|
||
Mutex and synchronization semantics for the shared application stores and pool lifecycle.
|
||
- [Paho Go MQTT v0.23.0](https://pkg.go.dev/github.com/eclipse/paho.golang/paho@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](https://forum.golangbridge.org/)
|
||
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.
|