When most people think about AI systems, they think about prompts, models, and responses. But once you start building real products, the interesting problems move elsewhere. The hard part is not always generating an answer. The hard part is making sure the system behaves reliably when requests fail, retries happen, jobs arrive out of order, users change their minds, and downstream services become slow or unavailable.

That is where event-driven design becomes powerful.

In this article, I want to explore how I think about production AI systems when they are built around events, queues, state machines, and background workers instead of a single synchronous request-response path. This is the kind of architecture that becomes necessary once your product needs to be dependable, scalable, and easy to operate in the real world.