Sequential await is a waterfall
Each await on its own line waits for the previous one. Three independent fetches at 200/300/250ms become a 750ms render. JavaScript doesn't magically parallelize them.
Independent fetches go in Promise.all
If A doesn't depend on B, fire them together and wait for both. Total time = max, not sum.
Sequential is fine when needed
If B's URL or query depends on A's result (getUser(id) → getPostsByAuthor(user.id)), the waterfall is intentional. Don't twist your code into knots to avoid it.
Suspense lets you stream waterfalls anyway
Even when fetches must run sequentially, Suspense boundaries let the page stream — the user sees the cheap parts immediately, the slower parts arrive when ready.