- Added 'onDelete' and 'onNotes' support to TaskItem. - Implemented hover actions (Delete and Notes icons) for tasks. - Added Notes Modal for editing task markdown content. - Simplified navigation animation to remove blank flash (single-phase slide-in). - Fixed syntax error in updateTask function. - Updated styles for modal and task actions.
1.1 KiB
1.1 KiB
| title | impact | impactDescription | tags |
|---|---|---|---|
| Prevent Waterfall Chains in API Routes | CRITICAL | 2-10× improvement | api-routes, server-actions, waterfalls, parallelization |
Prevent Waterfall Chains in API Routes
In API routes and Server Actions, start independent operations immediately, even if you don't await them yet.
Incorrect (config waits for auth, data waits for both):
export async function GET(request: Request) {
const session = await auth()
const config = await fetchConfig()
const data = await fetchData(session.user.id)
return Response.json({ data, config })
}
Correct (auth and config start immediately):
export async function GET(request: Request) {
const sessionPromise = auth()
const configPromise = fetchConfig()
const session = await sessionPromise
const [config, data] = await Promise.all([
configPromise,
fetchData(session.user.id)
])
return Response.json({ data, config })
}
For operations with more complex dependency chains, use better-all to automatically maximize parallelism (see Dependency-Based Parallelization).