Design a central system that communicates with devices in a power-grid setting over the **unreliable public Internet**. Devices must report their status to the system, and those reports may be delayed or arrive out of order.
Explain how the system should exchange messages, maintain a useful view of device status, and recover after connectivity problems. Clarify whether the required communication is limited to monitoring and status requests or also includes state-changing commands. The latter should be treated as a conditional extension; no power-control algorithm is specified.
Fleet size, required freshness, device capabilities, message format, and protocol are open requirements to clarify. Label the assumptions behind your proposed design.
### What a Strong Answer Covers
- Device identity, message identity, retries, and the distinction between acknowledging receipt and completing a requested action.
- A rule for handling duplicate and out-of-order reports, including device restarts.
- The difference between the newest received observation and a fresh observation of the device's present state.
- How the interface represents stale or unknown status during a network partition.
- Durable ingestion, reconnection, and checks that exercise delayed reports and lost acknowledgments.
### Follow-up Questions
- What happens when an old report arrives after a newer one, or after the device has restarted?
- If the central system receives no response, what can it conclude about the device itself?
Overview: Design device monitoring over unreliable Internet links, handling delayed reports, restarts, retries, and stale status without claiming certainty.
Design a central system that communicates with devices in a power-grid setting over the unreliable public Internet. Devices must report their status to the system, and those reports may be delayed or arrive out of order.
Explain how the system should exchange messages, maintain a useful view of device status, and recover after connectivity problems. Clarify whether the required communication is limited to monitoring and status requests or also includes state-changing commands. The latter should be treated as a conditional extension; no power-control algorithm is specified.
Fleet size, required freshness, device capabilities, message format, and protocol are open requirements to clarify. Label the assumptions behind your proposed design.
What a Strong Answer Covers Guidance
Device identity, message identity, retries, and the distinction between acknowledging receipt and completing a requested action.
A rule for handling duplicate and out-of-order reports, including device restarts.
The difference between the newest received observation and a fresh observation of the device's present state.
How the interface represents stale or unknown status during a network partition.
Durable ingestion, reconnection, and checks that exercise delayed reports and lost acknowledgments.
Follow-up Questions Guidance
What happens when an old report arrives after a newer one, or after the device has restarted?
If the central system receives no response, what can it conclude about the device itself?