Suppose there are different groups of scientists (Medical) serving emergency tickets. When an emergency ticket arrives for the common pool (group), at any time only one scientist is allowed to pick up the ticket , while others can or will be notified automatically that this particular guy is working on the ticket.
note : A single guy can work on multiple tickets with different deadlines.
When the ticket is too complicated to solve, the guy who picked up the ticket can hand it over over to other in the same group or different group. In such case the reason for such hand over should be propagated immediately to others.
At an extreme need the task on single ticket can be decomposed and distributed among groups. If a task is split and shared among groups for single ticket, the guys who are sharing the tickets will not be allowed to pick up any new ticket or work on other existing ticket (doing so, he will be notified that he is working on shared ticket).
My question is:
Is Observer pattern is the best choice for notifying the service or other design pattern is available to handle it smoothly (deadlock freely).?