Why you choose pregel-like to implement graph/workflow executing?

this is my test graph

in langgraph,the output log are

2025-07-24 10:52:18,239 - root - INFO - node4 sleep(4)
2025-07-24 10:52:22,241 - root - INFO - node5 sleep(5)
2025-07-24 10:52:22,243 - root - INFO - node1 sleep(1)
2025-07-24 10:52:22,243 - root - INFO - node2 sleep(2)
2025-07-24 10:52:22,244 - root - INFO - node3 sleep(3)
2025-07-24 10:52:25,245 - root - INFO - node7 sleep(7)
2025-07-24 10:52:32,246 - root - INFO - node8 sleep(8)
2025-07-24 10:52:40,249 - root - INFO - node6 sleep(6)

in dify, use sub_workflow replace subgraph, the output log

{
  "node5": "2025-07-24 10:15:43.749738 2025-07-24 10:15:48.750674",
  "node6": "2025-07-24 10:15:48.805789 2025-07-24 10:15:54.811823",
  "node4": "2025-07-24 10:15:39.688387 2025-07-24 10:15:43.691200",
  "json": [
    {
      "node1": "2025-07-24 10:15:43.849680 2025-07-24 10:15:44.850331",
      "node2": "2025-07-24 10:15:43.847502 2025-07-24 10:15:45.849541",
      "node3": "2025-07-24 10:15:43.849264 2025-07-24 10:15:46.851899",
      "node7": "2025-07-24 10:15:46.911403 2025-07-24 10:15:53.918443",
      "node8": "2025-07-24 10:15:53.976924 2025-07-24 10:16:01.984454"
    }
  ]
}

in dify, node6 execute while subworkflow is running

in my opinion,dify looks like multi-thread, while langgraph are not. so, what the advantage of langgraph’s current executing engine Pregel? Can you show some cases that langgraph can do while dify cannot?