Parent and child events

In specific cases, events may be triggered by activity associated with an earlier event. In these scenarios, we describe the subsequent event as a child event, and the preceding event as a parent.

When viewing any given event in Mechanic, look in the event details to find any parent or child relationships that apply:

Under "Parent" or "Children", click on a linked event topic to open up a specific event.

Example

To see this in action, try creating a task that looks like this:

Task subscriptions

mechanic/user/trigger
user/fan/out

Task script

{% assign n = event.data | default: 0 | times: 1 %}

{% if n < 5 %}
  {% for m in (0..n) %}
    {% action "event" %}
      {
        "topic": "user/fan/out",
        "data": {{ n | plus: 1 | json }},
        "task_id": {{ task.id | json }}
      }
    {% endaction %}
  {% endfor %}
{% else %}
  {% action "echo", event_data: event.data, parent_event_data: event.parent.data %}
{% endif %}

As written, this task will "fan out": it will generate 1 child event, which will then generate 2 child events, each of which will then generate 3 child events, and each of those will then generate 4 child events, and finally, each of those events will generate 5 child events of their own. The result: 154 events, created with a single click. :)

And, importantly, note the "task_id" option, applied to the "event" action. This option ensures that only this task will respond to the new event. While it's unlikely that any other task will subscribe to "user/fan/out" events, this option is an important for ensuring expected behavior.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.