ReactorTelemetryEvent
extends TelemetryEvent
in package
One reactor-runtime telemetry event (CONTRACT.md §19, §22.8).
PHP has no sealed keyword, so §19.2 rule 3's "no secrets, ever" is carried
structurally, the same way the rest of this SDK's §19 surface carries it: the
class is final, every property is a promoted readonly scalar drawn from a
fixed vocabulary, and there is no free-form array. There is nowhere to put the
signing key, the event payload or the patch.
Wiring a hook is worth doing rather than optional. §22.8's last paragraph is why:
a fail_open timeout produces allow and an audit record, and that pair is
the whole difference between "no reactor was configured" and "the reactor never
answered". An SDK surfacing reactor health MUST NOT infer health from the
outcome alone — self::PHASE_NO_REPLY is how this runtime reports the
cases the outcome hides.
Table of Contents
Constants
- OPERATION : mixed = 'reactorServe'
- The §19 operation name every reactor telemetry event carries.
- OUTCOME_FAILURE : mixed = 'failure'
- Outcome: the call failed, at any layer.
- OUTCOME_SUCCESS : mixed = 'success'
- Outcome: the call returned a usable response.
- PHASE_NO_REPLY : mixed = 'no_reply'
- The delivery reached the handler but no reply was published, so the registration's `failure_policy` decides (§22.8).
- PHASE_RECEIVED : mixed = 'received'
- A delivery passed every §22.3 check and is about to reach the handler.
- PHASE_REJECTED : mixed = 'rejected'
- A delivery was refused BEFORE the handler ran. `$reason` is one of {@see ReactorRejection}'s categories — never the received or expected MAC.
- PHASE_REPLIED : mixed = 'replied'
- A signed reply was published. `$decision` is the wire value.
- REFRESH_FOLLOWER : mixed = 'follower'
- Refresh role: this caller waited on another's refresh.
- REFRESH_LEADER : mixed = 'leader'
- Refresh role: this caller performed the refresh.
Properties
- $correlationId : string
- $decision : string|null
- $durationMs : float|null
- $event : string
- $phase : string
- $reason : string|null
Methods
- __construct() : mixed
Constants
OPERATION
The §19 operation name every reactor telemetry event carries.
public
mixed
OPERATION
= 'reactorServe'
OUTCOME_FAILURE
Outcome: the call failed, at any layer.
public
mixed
OUTCOME_FAILURE
= 'failure'
OUTCOME_SUCCESS
Outcome: the call returned a usable response.
public
mixed
OUTCOME_SUCCESS
= 'success'
PHASE_NO_REPLY
The delivery reached the handler but no reply was published, so the registration's `failure_policy` decides (§22.8).
public
mixed
PHASE_NO_REPLY
= 'no_reply'
PHASE_RECEIVED
A delivery passed every §22.3 check and is about to reach the handler.
public
mixed
PHASE_RECEIVED
= 'received'
PHASE_REJECTED
A delivery was refused BEFORE the handler ran. `$reason` is one of {@see ReactorRejection}'s categories — never the received or expected MAC.
public
mixed
PHASE_REJECTED
= 'rejected'
PHASE_REPLIED
A signed reply was published. `$decision` is the wire value.
public
mixed
PHASE_REPLIED
= 'replied'
REFRESH_FOLLOWER
Refresh role: this caller waited on another's refresh.
public
mixed
REFRESH_FOLLOWER
= 'follower'
REFRESH_LEADER
Refresh role: this caller performed the refresh.
public
mixed
REFRESH_LEADER
= 'leader'
Properties
$correlationId read-only
public
string
$correlationId
$decision read-only
public
string|null
$decision
= null
$durationMs read-only
public
float|null
$durationMs
= null
$event read-only
public
string
$event
$phase read-only
public
string
$phase
$reason read-only
public
string|null
$reason
= null
Methods
__construct()
public
__construct(string $phase, string $event, string $correlationId[, string|null $reason = null ][, string|null $decision = null ][, float|null $durationMs = null ]) : mixed
Parameters
- $phase : string
-
One of the
PHASE_*constants. - $event : string
-
The §22.5 event name, or
""when the delivery was refused before its name could be trusted. - $correlationId : string
-
The dispatch handle. Not a secret (§22.12), and the field that lets a reactor's own logs be joined to the server's audit records.
- $reason : string|null = null
-
A fixed-vocabulary rejection or no-reply category.
- $decision : string|null = null
-
The wire decision on self::PHASE_REPLIED.
- $durationMs : float|null = null
-
Wall-clock time from receipt to publication.