Most SaaS stacks were built for tidy CRUD flows and fixed schemas, so once you try to push AI through them the whole thing gets awkward fast.
AI jobs don’t fit the “click button, write row, return 200” shape most SaaS apps were built around. They’re long-running, flaky by nature, want retries, stream partial output, and sometimes need to resume halfway through without duplicating work.
Look — the second you force that into a normal request/response controller, you’ve quietly signed up to run a queue, a state machine, and an idempotency/“did we already do this?” layer. And if you didn’t design for that up front, it turns into a pile of background workers, mystery timeouts, and support tickets at 3am.