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.
1.1 KiB
1.1 KiB
Mission: Go backend for MQTT vending devices
Why
Build and maintain a Go backend that communicates with Mosquitto over MQTT 5, receives vending-device telemetry and logs, exposes status, and sends safe commands and updates.
Success looks like
- Trace a device operation from HTTP request through MQTT delivery to device result without confusing their acknowledgements.
- Implement and maintain bounded, validated, observable Go handlers for device messages and commands.
- Diagnose failures across the API, backend, broker, and device boundaries.
Constraints
- Use this repository's simulator and disposable lab; keep the production backend read-only.
- Assume Go and Docker basics and prior MQTT 3.1.1 study; focus on MQTT 5 behavior and operational consequences.
- Lessons should be brief, use an overview before details, include meaningful emojis, and require the learner to retrieve or apply an idea.
Out of scope
- Sending real commands to vending machines or changing production systems.
- Treating broker delivery as proof that a device performed a business action.