Clarify worker/supervisor heartbeat docs and deprecate unused nimbus.supervisor.timeout.secs (#8984)

* Clarify worker/supervisor heartbeat docs and deprecate unused nimbus.supervisor.timeout.secs

Documentation still described the pre-2.0 model in which workers/tasks
heartbeat directly into ZooKeeper. Since 2.0 (STORM-2693), worker liveness
heartbeats are written to local disk and relayed to Nimbus over Thrift, held
in an in-memory heartbeat cache; supervisor liveness is an ephemeral ZooKeeper
node detected via session expiry.

Docs:
- Daemon-Fault-Tolerance.md: describe the actual worker heartbeat relay path
  and the ephemeral-znode supervisor liveness mechanism.
- Lifecycle-of-a-topology.md: note (inline in the 0.7.1 walkthrough) that the
  ZK-directory heartbeat model was replaced in 2.0.
- Cluster-State-Serialization.md: clarify worker heartbeats are not persisted
  in ZooKeeper by default (only under Pacemaker/legacy configuration).

Config:
- Because supervisor crash detection relies on ephemeral znodes, no Nimbus-side
  supervisor timeout check exists, so nimbus.supervisor.timeout.secs is never
  read. Mark the DaemonConfig constant @Deprecated, remove the misleading
  defaults.yaml entry, and drop two inert references in NimbusClojurePortTest.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Use forRemoval/since on deprecated NIMBUS_SUPERVISOR_TIMEOUT_SECS

Match Storm's existing deprecation convention (e.g. Config.java) by marking
the unused constant @Deprecated(forRemoval = true, since = "3.0.1") and stating
in the javadoc that it is scheduled for removal. 3.0.1 is the current
development version (root pom is 3.0.1-SNAPSHOT).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Target 3.1.0 milestone for NIMBUS_SUPERVISOR_TIMEOUT_SECS removal

Set since = "3.1.0" (the milestone this deprecation targets) on the
@Deprecated(forRemoval = true) annotation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Keep deprecated nimbus.supervisor.timeout.secs default with a comment

An earlier commit removed the defaults.yaml entry. Since the deprecation
targets removal in a future release (not now), keep the shipped default in
place during the deprecation window and add a comment explaining it is unused
(supervisor liveness is tracked via ephemeral ZooKeeper nodes). The entry
itself is unchanged from master; only the explanatory comment is added.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
6 files changed