How about a comment?
```ruby
#frames = [WORKER_ID, "", CLIENT_ID, REQUEST_DATA]
```
I was going to go back and add a comment like that where the frames are being sent/received. In my mind it's enough to clarify the code. It doesn't necessarily explain why the empty string is there in the first place, but that's probably a job for the zmq documentation.