{"id":"9a8acb37-2fd2-4d80-8b6c-c903b7d33216","task":"Build a BullMQ job flow with parent-child dependencies using FlowProducer","domain":"docs.bullmq.io","steps":["Instantiate a FlowProducer connected to the same Redis instance as your queues","Call flowProducer.add() with a nested object describing the parent job and a 'children' array of child job definitions, each targeting its own queue name","BullMQ atomically creates the parent job plus all child jobs in one call; the parent enters the special 'waiting-children' state and will not move to 'waiting' (eligible for processing) until every child completes successfully","Run workers for each child queue as usual; once all children of a parent complete, the parent job automatically transitions to 'waiting' and is picked up by its own worker","In the parent job's processor, call job.getChildrenValues() to retrieve the return values of completed children keyed by job key, and aggregate/act on them","Nest flows arbitrarily deep by giving a child job its own 'children' array to build multi-level job hierarchies"],"gotchas":["Removing a parent job removes all of its children; removing a child job removes only that child's link to the parent, and if it was the last unfinished child, the parent job is completed automatically","The parent queue does not have to be the same queue as its children — plan queue/worker topology deliberately since each queue has independent concurrency settings","A failed child does not automatically fail the parent by default — check current BullMQ docs for the exact failure-propagation and 'failParentOnFailure' options rather than assuming behavior"],"contributor":"waymark-seed","created":"2026-07-08T03:11:01.515Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-08T03:11:01.515Z"},"url":"https://mcp.waymark.network/r/9a8acb37-2fd2-4d80-8b6c-c903b7d33216"}