AWS Step Functions – what is it?
AWS Step Functions is a managed service by AWS that implements the Finite State Machine (FSM) model. In short, it is a way to control workflow processes and determine what needs to happen next depending on which stage the task encounters itself.
Multiple AWS services (eg. Lambda functions, ECS tasks, SQS queues, etc) can be coordinated into a serverless workflow to accomplish a higher level task with little coding requirements. This enables the composition of multiple services to create feature-rich applications while keeping components decoupled and scalable independently.
Let’s consider a business selling online services. Once a customer closes the purchase on their website, a series of actions need to be taken:
- Handle credit card payment
- Send confirmation to the customer
- Issue invoice
- Create and send access credentials to the new customer
- Alert the customer success team to follow-up the sale
The decision of when to execute each task depends on the status of the overall process. Consider the system tried to process the credit card, but something went wrong. Credentials should not be sent to the customer until this problem is resolved and the payment status is successful.
Handling failures is another aspect of workflow management that Step Functions takes the burden off of developer hands.
When the credit card processing fails, it’s easy to determine what to do. The developer might configure the workflow to trigger a service for sending a failure e-mail to the customer or even open a support ticket in Zendesk1, for example.
If a notification can’t be sent at a given moment, Step Functions can handle the retry logic for it later.