How do you keep async workflows understandable as they grow? 4 hours ago
#1
A workflow can start simple: receive a request, process it and return a result.
Then it grows to include external APIs, retries, rate limits, human approvals and scheduled actions.
At that point, I find explicit state transitions and observable job histories more useful than clever abstractions.
How do you structure long-running workflows in Java? Do you prefer a state machine, event-driven architecture or a straightforward queue with persisted job states?
Then it grows to include external APIs, retries, rate limits, human approvals and scheduled actions.
At that point, I find explicit state transitions and observable job histories more useful than clever abstractions.
How do you structure long-running workflows in Java? Do you prefer a state machine, event-driven architecture or a straightforward queue with persisted job states?




![[+]](https://sinister.li/images/modern/collapse_collapsed.png)