Workflows as a Distributed Transactional Backend
Blog post from Orkes
The blog post examines the modern transactional stack in application development, focusing on two main approaches: database-oriented and workflow-oriented transactional backends. Modern apps, being distributed systems, often rely on cloud computing and infrastructure services for scalability and fault tolerance, which distinguishes them from traditional monolithic enterprise applications. The article highlights the challenges of managing long-running transactions across multiple services and introduces workflow engines, like Orkes Conductor, as effective solutions for coordinating distributed transactions using the saga pattern. This approach simplifies transaction management by splitting long transactions into shorter ones and handling compensations for failures, thus enhancing the scalability and flexibility of complex applications. While a database-centric approach offers simplicity, it struggles with complex application logic and integration with external systems. In contrast, combining workflow engines with business state management allows for better scaling with business growth and complexity, offering a polyglot development ecosystem and improved service reusability. This hybrid approach, exemplified by Orkes Conductor, effectively balances the benefits of database-centric methods with the advantages of workflow orchestration, making it suitable for complex, scalable distributed applications.