Refactor MQTT course and bound backend message processing
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.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user