Slide 73
Slide 73 text
Node.monitor(consumer_node, true)
monitor_ref = Process.monitor(consumer_pid)
send(consumer_pid, {monitor_ref, message})
receive do
{:ack, ^monitor_ref} ->
Process.demonitor(monitor_ref, [:flush])
{:DOWN, ^monitor_ref, _, _, _} ->
give_to_another_consumer(message)
{:nodedown, ^consumer_node} ->
give_to_another_consumer(message)
end