Detect dispatch sessions automatically by using causation id and nesting level Each call to $eventMachine->on() should add a nesting level. Each call to $eventMachine->dispatch() should remove a nesting level. First call to $eventMachine->dispatch() should use message.uuid as causation id. Nesting level + causation id should be set in message metadata.