Here are three approaches to designing a Long-Running…
““Here are three approaches to designing a Long-Running Process, although there may be more: • Design the process as a composite task, which is tracked by an executive component that records the steps and completeness of the task using a persistent object. This is the approach discussed most thoroughly here. • Design the process as a set of partner Aggregates that collaborate in a set of activities. One or more Aggregate instances act as the executive and maintain the overall state of the process. This is the approach promoted by Amazon’s Pat Helland [Helland]. • Design a stateless process in that each message handler component that receives an Event-carrying message must enrich the received Event with more task progress information as it sends the next message. The state of the overall process is maintained only in the body of each message sent from collaborator to collaborator.””
About This Quote
This interpretation was drafted with AI assistance. It is one reading of the quote, not the author's own explanation.
Three patterns for handling long-lived workflows: a central task tracker, collaborative aggregates, or stateless event enrichment.
In simple terms: Three ways to build long processes: central tracker, cooperating parts, or stateless messages.
Pick the pattern that matches your system’s consistency and scalability needs.
Themes
Mood
Type
When to use this quote
- building microservices
- orchestrating business processes
- handling distributed transactions
- maintaining data integrity
Key Concepts
Questions to Reflect On
- Which pattern best fits your team’s expertise?
- How will you handle failures in each design?
Each approach adds complexity; choosing the wrong one can cause bottlenecks or data loss.