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?
