Description
Link to the code that reproduces this issue
https://github.com/yehonatanyosefi/parallel-routes-example
To Reproduce
- start the application
- click start button
- see console logs come out as ABAB on the server side with two post requests, and on the client side it taking 2 seconds instead of one even though using promise.all
Current vs. Expected behavior
Current behavior of nextjs server actions are they are executed in sequential fashion, however there is no flag or option or a config to let them be executed in parallel. Causing them to block some ux. For example for ai image generation, you'd have to wait for the last call to finish before making your next one, causing you to need to wait over 15 seconds before you can even generate more images instead of the Expected behavior of being able to send them in parallel and stream in finished generations by awaiting them.
In the example I sent you can see even though I used Promise.all on 2 promises that each take a second that should be expected take only 1 second together but because of the sequential nature the current behavior is it takes 2.
Provide environment information
when hosted on vercel it happens, locally it happens too:
Operating System:
Platform: win32
Arch: x64
Version: Windows 11 Pro
Available memory (MB): 32393
Available CPU cores: 20
Binaries:
Node: 20.10.0
npm: N/A
Yarn: N/A
pnpm: N/A
Relevant Packages:
next: 15.0.0-canary.128 // Latest available version is detected (15.0.0-canary.128).
eslint-config-next: N/A
react: 19.0.0-rc-eb3ad065-20240822
react-dom: 19.0.0-rc-eb3ad065-20240822
typescript: 5.3.3
Next.js Config:
output: N/A
Which area(s) are affected? (Select all that apply)
create-next-app, Parallel & Intercepting Routes, Performance
Which stage(s) are affected? (Select all that apply)
next dev (local), Vercel (Deployed)
Additional context
Edit: https://x.com/cramforce/status/1733240566954230063
Above's link to a reply by Vercel's CTO agreeing it should have control if we want it parallel