Fire-and-forget one-to-one message

  • I'm getting started with an OpenDXL service to convey a "fire-and-forget" message, which message needs to be acted upon by just one of N redundant clients.


    What's a good approach for this? Events will go to all N clients, who aren't aware of each others' existence and don't have a concept of an elected leader or active master. Should I have a request/response message, but set the timeout to immediate and ignore timeouts?

  • Hi Dile,


    Here are some suggestions.

    1. You can send out an event to see who can handle it and then pick the first one that responds to it and send a targeted message to that client to process it.

    2. When a client handles the message , any other client attempting it can be a no operation. Once it completes it can even send out a completed message


    If these suggestions do not help, please provide more context and we will be able to assist you.

  • Thanks, Viji. While I could redesign the services' interactions as you suggest, I'd prefer to keep the "worker clients" unaware of each other, and the event producer unaware of the workers.


    In the short term, an async_request with a NOOP ResponseCallback handler does what I need.