You're right, it requires two events. You can also send an event and wait for an answer by tagging the event you send and expect that tag to be part of the event you receive. Events will also help you receive the callback on the right thread, since that's configurable in the event itself.