Personally I think reading Temporal workflows in PHP are very confusing due to the way you have to yield activities and timers. Next to that I don't like the fact that I need to use RoadRunner and async PHP only to execute some workflows. Recently I implemented an [SDK in PHP for Absurd durable workflow engine](https://github.com/ruudk/absurd-php-sdk) using [Fibers](https://www.php.net/manual/en/language.fibers.php). Basically when a workflow wants to suspend execution it triggers Fiber::suspend with the relevant info. The SDK then reads the value and can decide to resume the Fiber if needed. Just wanted to share this as I think it's an interesting alternative or a way to simplify the Temporal SDK.