hengebytes/webservice-core-async-bundle
Adds asynchronous web service request handling to Hengebytes WebService Core. It lets PHP applications dispatch concurrent calls without blocking, helping integrate slow or multiple remote services more efficiently while keeping core client workflows intact.
Throwable before a response exists; the 423 {"cacheId": ...} placeholder can no longer leak to callers as a success; reloaded-request failures surface with their real cause) remove a class of incidents that present to support as "random 60-second hangs" and "empty 200s." That is a support-cost and trust argument, not a code-quality argument.logs/lock_wait_threshold (default 5s) now emits a <customAction>:lock_wait warning. Lock contention becomes a measurable leading indicator of upstream saturation—usable as an SLO input and as evidence for scaling the downstream service rather than guessing at it.CacheManager::awaitUnlock() now returns the seconds waited (float) instead of void. Callers that ignored the return are unaffected, but any subclass override declaring : void, or any interface/mock asserting void, will fatal. The optional autowired MonologLogHandler on LockResponseLoaderResponseModifier and the new public static ReloadLockedResponseResponseModifier::reloadLockedResponse() are additive and safe.Adopt when:
soap-core-async-bundle stack this release explicitly supports (v2.0.1 relies on the new public static reload helper).Look elsewhere when:
awaitUnlock() return-type change is a reminder that 1.x patches can carry signature changes.To executives (one paragraph): This patch fixes a defect that silently throttled concurrent traffic hitting expensive backend services—under contention, throughput could fall to roughly one request per minute per lock, with the lock held for its full TTL and no trace in the logs. It also turns lock contention into a logged, measurable signal and stops lock placeholders or swallowed errors from reaching customers as successful responses. The practical outcome is fewer "random timeout" incidents, lower support load, and confidence that bursty read features actually scale. Cost is a low-risk patch upgrade plus a short audit of any custom locking code.
To engineering: Take the upgrade; it closes a request-pipeline bug where reloaded responses bypassed their own middleware, and it hardens every failure path (cache-store failure, TTL callback and tagging failures, any Throwable before a response exists) so locks release instead of stalling the next N callers. Two action items: (1) grep for awaitUnlock() overrides, mocks, and interface declarations—the return type moved from void to float and a lingering : void override will fatal; (2) wire <customAction>:lock_wait into your alerting and pick a deliberate logs/lock_wait_threshold rather than inheriting the 5s default. Autowired MonologLogHandler and the new public static reloadLockedResponse() are additive—the latter is what soap-core-async-bundle v2.0.1 expects, so upgrade the two together.
How can I help you explore Laravel packages today?