Easily Create Complex Workflows with AWS Step Functions
agilevision.io
agilevision.io
Biggest gripe: updating a state machine is still not supported (you can manage state machines through CloudFormation now, but I believe it updates with replacement, meaning the state machine gets blown away and replaced by a new one with the same name.) We've had to roll our own versioning to get around this.
If you'd like to know more about how we are using Step Functions, as well as some specific benchmark comparisons against our old SWF architecture, feel free to check out this post: https://forrestbrazeal.com/2016/12/29/serverless-workflows-o...
I think I'm mostly excited to stop locally representing/maintaining/enforcing the state machine -- it's been a huge source of toil for very little benefit. Hoping the cheapness of a new state machine will encourage splitting them when it makes sense instead of inflating/complicating an existing workflow...
How are the latency gains in practice? Specifically the activity -> decision -> activity interstitial latency in SFN vs the old SWF style.
Such as: a parent state's output will determine the size of the input to pass on to multiple copies of identical parallel state children (the number of which is determined by the parent's output). These get the same input or a specific slice of the same input from their parent.
I guess these could be created dynamically within the parent, then deleted afterwards. Not as clean as declaring this in the states markup though.
Retry": [ {
"ErrorEquals": ["S3resourceNotFound"],
"IntervalSeconds": 1,
"MaxAttempts": 2,
"BackoffRate": 2.0
},
"ErrorEquals": ["OtherErrorName"],
"IntervalSeconds": 1,
"MaxAttempts": 2,
"BackoffRate": 2.0
}]
Simpler."Important Custom Error Names, like those shown above ("ErrorA", "ErrorB", etc.) can be generated by an Activity, but not Lambda Functions. (See "FunctionError" field in the Lambda Response Syntax for more information"[0]
[0] https://docs.aws.amazon.com/step-functions/latest/dg/concept...
Just read the AWS Step Functions Developer Guide (1.0) and it's not currently possible to generate custom named errors from a Task. Only possible from Activities.
I wish step functions just supported the triggers directly tbh, i.e. have the ability to invoke a state machine on an S3 put, passing the event information to the first step in the machine.
[0] https://aws.amazon.com/about-aws/whats-new/2017/02/amazon-ap...
Particularly interested in composing higher and lower level state machines for better separation of concerns, but haven't yet come up with a compelling use case :)