Migration Guide
Remove the SDK dependency. Get proper alerting and AI diagnostics.
Search for inngest.createFunction() calls with a "cron" trigger in your codebase.
# Find Inngest cron functions grep -r "cron:" src/ --include="*.ts"
For each cron function, identify what it does — typically an HTTP call or database operation.
Create an HTTP route that performs the same action as the Inngest function.
// app/api/cron/sync/route.ts
export async function POST(req: Request) {
const secret = req.headers.get("x-cron-secret");
if (secret !== process.env.CRON_SECRET) return new Response("Unauthorized", { status: 401 });
await syncData();
return Response.json({ synced: true });
}Create a JustRun job for each function: same cron expression, HTTP endpoint URL, x-cron-secret header.
Delete the createFunction() definitions for schedule triggers. Keep Inngest for event-driven functions if still needed.
JustRun has built-in retry policies (exponential, linear, fixed backoff). For multi-step orchestration, keep using Inngest — it's excellent for that use case.
Yes — use Inngest's event API endpoint. Create a JustRun job that sends an event to Inngest on a schedule. You get JustRun's scheduling reliability while keeping Inngest's function orchestration.