Software Engineering Radio – the podcast for professional software developers
Bernd Rücker, who has contributed to multiple open source workflow management projects, discusses orchestrating microservices with workflow management. As distributed systems evolve into a family of microservices that must handle long-running stateful processes with time-dependent actions, events, multiple paths through the system, and complex rollbacks, the workflow management model provides a way to ensure clear modeling, correctness, and separation of concerns. Rücker recommends a federated model in which each microservice is paired with its own workflow to handle retries and other policies and failure modes around that service. Robert Blumen spoke with Rücker about microservice architecture, event-driven systems, long-running stateful processes versus synchronous request/response, event handling, time-outs, and handling exceptional conditions with compensating transactions. Rücker compares the choreography versus orchestration models for collaboration and discusses why orchestration provides a better separation of concerns. The discussion delves into the implementation of workflow management systems including persistence, scaling, event handling, timers and scheduling, and similarities to CQRS. The discussion wraps up with monitoring and visualization.