Even Simula, the original OOP language, is much closer to the procedural-ish OOP than to Smalltalk.
Then all the languages that support Component Programming via traits, interfaces, data classes, OS ABI like COM, or whatever they feel like calling it, do as well.
You can simulate request-response with it, using a channel to go one way and another the other way, but it can get pretty convoluted.
The thing I wasn't asking was "can I implement a language that can do this in Java?" which is why I don't think the Turing completeness comment is particularly relevant.
The true goal of event-driven is the separation of concenrns, so you don't call `execute_payment`, `send_confirmation_email`, `include_in_report_dashboard` etc inside a `complete_order`.
Instead, you emit "order_issued" event and all subscribers can act based on the event, completely unknown from `complete_order`.
At least that is how I understand it.