Genuine ignorant question: is this a language problem or a coding problem? I'm thinking of "sending a message" as a synchronous function call. Could you not code in a style that passes messages around?
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.
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.