Modeling asynchonous catch message with timeout
I have a business case in which my process is calling a backend system and then is waiting during a certain time for an asynchonous message/event coming from that system.
My concern is how do I model this timeout on the catch message task.
I first thought to a service task sending the message, then a parallel gateway with 2 branches connected to a timer for timeout, and message catch task, and then an exclusive join to process the first task to finish.
But it's a bad design to have a parallel gateway with an exclusive join gateway, because what will happen if the catch message task finishes after the timeout ?
I imagine that it is a common pattern, but I cannot figure out how to model it.
Can you provide me with advices ?
Thanks in advance