liquidrazor / process-events
Concrete runtime process event implementations for the LiquidRazor ecosystem.
Requires
- php: ^8.3
- liquidrazor/event-manager: ^0.1
Requires (Dev)
- phpunit/phpunit: ^12.5
README
liquidrazor/process-events is a small provider library of concrete runtime process event implementations for the LiquidRazor ecosystem.
It provides immutable worker lifecycle events, immutable outbound external call lifecycle events, and the small typed metadata/value objects those events use.
It does not provide event infrastructure. This package does not define contracts, dispatch events, register listeners, orchestrate runtime behavior, or implement retry/timeout/cancellation policy engines.
Requirements
- PHP
^8.3 liquidrazor/event-manager:^0.1
Installation
composer require liquidrazor/process-events
Contract Boundary
All event contracts come from liquidrazor/event-manager.
- Events in this package implement
LiquidRazor\EventManager\Contracts\ProcessEventInterface - This package does not redefine
ProcessEventInterfaceor any immutable/base event contract locally
Event Catalog
Worker lifecycle events:
WorkerSpawnedEventWorkerStartedEventWorkerFinishedEventWorkerCrashedEvent
External call lifecycle events:
ExternalCallStartedEventExternalCallSucceededEventExternalCallFailedEventExternalCallRetryRequestedEventExternalCallRetriedEventExternalCallTimedOutEventExternalCallCancelledEvent
Metadata Model
Worker metadata/value objects:
WorkerIdentityWorkerTerminationWorkerCrash
External call metadata/value objects:
CallIdentityAttemptNumberExternalCallReferenceExternalTargetExternalOperationExternalTransportExternalCallDescriptorExternalCallTimingExternalCallFailureExternalCallRetryExternalCallTimeoutExternalCallCancellation
The external call model distinguishes the logical call identity from the individual attempt number. Retries preserve the same CallIdentity while AttemptNumber changes.
Package Structure
include/
Metadata/
lib/
Worker/
ExternalCall/
src/
include/contains reusable typed metadata/value objectslib/contains the concrete event classessrc/is reserved for minimal package glue and is currently empty
What This Package Is Not
This package is not:
- event infrastructure
- a contract-definition package
- a dispatcher
- a listener/subscriber system
- a runtime orchestration engine
- a retry/timeout/cancellation policy engine
- a transport adapter package
- a kernel-state event package
Transport-specific runtime objects must be normalized before they enter this package. The public API is typed metadata, not PSR-7 objects, SDK responses, cURL handles, or client-library exceptions.