AXIAM PHP SDK

ReactorTelemetryEvent extends TelemetryEvent
in package

FinalYes

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

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.

On this page

Search results