In Temporal, the execution model is based on an "Inversion of Execution" approach, where the workflow engine orchestrates the execution of application code without executing it directly. Instead, the Temporal Server records the intent to execute application steps and then passes them to Application Workers for execution. This approach provides several benefits, including reliability through fault-oblivious execution, security through zero-trust separation of concerns, and scalability through independent workflow execution. The Inversion of Execution model is an inversion of the standard execution model where dependencies are injected into application code, instead Temporal "injects" steps of execution into application code. This approach also makes it easier to solve non-trivial problems in high-throughput reliable message processing systems, such as retries and backoff, deduplication, and ordering guarantees, by providing an opinionated set of solutions through the Temporal Server.