The cloud based approach would definetly be the easiest.
Whatever condition needs attention would be “broadcasted” via Particle.publish("IncidentBucket1", "WhateverHappened")
and the other devices would subscribe to these notifications via Particle.subscribe("IncidentBucket", doSomething)
where void doSomething(const char* event, const char* data)
is a function that would look at event
and data
and act upon it.
Notice that the subscription only looks for any event starting with “IncidentBucket”, which bucket can be distinguished by looking at event
inside the subscription handler.