liquidrazor/process-events is a provider-only library. Its job is to expose concrete immutable runtime process events and the small typed metadata/value objects attached to them.
It intentionally stays out of infrastructure concerns.
This package includes:
- worker lifecycle event implementations
- outbound external call lifecycle event implementations
- compact typed metadata/value objects used by those events
This package does not include:
- event contracts
- dispatchers
- listeners or subscribers
- orchestration logic
- worker supervision logic
- retry engines
- timeout engines
- cancellation engines
- transport adapters
- kernel lifecycle events
All event contracts come from liquidrazor/event-manager.
- Concrete events implement
LiquidRazor\EventManager\Contracts\ProcessEventInterface - No local copy of
ProcessEventInterfaceor any immutable/base contract is defined here
liquidrazor/process-events depends on liquidrazor/event-manager; not the other way around.
include/
Metadata/
Worker/
ExternalCall/
lib/
Worker/
ExternalCall/
src/
Layout responsibilities:
include/holds the public metadata/value objectslib/Worker/holds concrete worker lifecycle eventslib/ExternalCall/holds concrete external call lifecycle eventssrc/is reserved for minimal package-level glue and is currently empty
All event classes and metadata/value objects in the implemented package are final readonly.
Payloads are modeled as typed objects, not raw arrays or generic context bags. The current implementation also normalizes and validates constructor input:
- string identifiers/classifications are trimmed
- empty required strings are rejected
- numeric fields such as attempt numbers, exit codes, timeout values, and durations are validated
- timing data rejects a finish time earlier than the start time
External call events describe the caller/process perspective only. They do not expose transport- or client-specific implementation objects.
This package API is intentionally transport-agnostic. Normalize details from HTTP, RPC, SDK, AMQP, or other clients into the metadata types before constructing events.