Migration Guide
Migrate from Inngest Cron Functions
Remove the SDK dependency. Get proper alerting and AI diagnostics.
Step by step
Find your cron functions
Search for inngest.createFunction() calls with a "cron" trigger in your codebase.
# Find Inngest cron functions grep -r "cron:" src/ --include="*.ts"
Extract the function logic
For each cron function, identify what it does — typically an HTTP call or database operation.
Expose logic as HTTP endpoints
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 JustRun jobs
Create a JustRun job for each function: same cron expression, HTTP endpoint URL, x-cron-secret header.
Remove Inngest cron functions
Delete the createFunction() definitions for schedule triggers. Keep Inngest for event-driven functions if still needed.
Common questions
What about Inngest's step functions and retries?
JustRun has built-in retry policies (exponential, linear, fixed backoff). For multi-step orchestration, keep using Inngest — it's excellent for that use case.
Can I call Inngest event handlers from JustRun?
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.