Watchtower-Course-Project

ADR-0005: Use Beacon API for Telemetry Delivery

Status

Approved

Date

2026-05-27


Context

WatchTower requires reliable frontend telemetry delivery for:

Traditional asynchronous HTTP requests may fail during:

This can result in information loss and incomplete observability data.

WatchTower requires a mechanism for reliably transmitting final-session telemetry events without affecting user experience.


Decision

Use the browser-native Beacon API for telemetry delivery and session finalization events.


Rationale


Alternatives Considered

Standard Fetch API

Rejected because requests may be cancelled during unload or navigation events.

Fetch API with keepalive

Considered but rejected as the primary mechanism because browser support and reliability is not as reliable as Beacon APIsemantics.

WebSockets

Rejected because bidirectional connections arenot needed for a monitoring app.


Consequences

Positive

Negative


Conclusion

The Beacon API was selected because it provides a lightweight and unload-safe mechanism for transmitting critical frontend telemetry data, improving the reliability and completeness of WatchTower observability signals.