//: # (Licensed under the Apache License, Version 2.0 (the "License");) //: # (you may not use this file except in compliance with the License.) //: # (You may obtain a copy of the License at) //: # ( ) //: # (http://www.apache.org/licenses/LICENSE-2.0) //: # ( ) //: # (Unless required by applicable law or agreed to in writing, software) //: # (distributed under the License is distributed on an "AS IS" BASIS,) //: # (WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.) //: # (See the License for the specific language governing permissions and) //: # (limitations under the License.)
A framework for running Finite State Machine (FSM) Workflows on
- AWS Lambda for code execution,
- (Optionally) AWS ECS for long-running code execution,
- AWS Kinesis for event dispatch
- (Optionally) AWS DynamoDB for event dispatch
- (Optionally) AWS SNS for event dispatch
- (Optionally) AWS SQS for event dispatch
- Support for primary and secondary event dispatch mechanisms
- (Optionally) AWS DynamoDB for checkpointing
- (Optionally) AWS DynamoDB for retries with backoff
- (Optionally) AWS SQS for retries with backoff
- (Optionally) Memcache for idempotency
- (Optionally) AWS DynamoDB for idempotency
- (Optionally) AWS CloudWatch for error and failure monitoring
The FSM implementation is inspired by the paper:
[1] J. van Gurp, J. Bosch, "On the Implementation of Finite State Machines", in Proceedings of the 3rd Annual IASTED International Conference Software Engineering and Applications,IASTED/Acta Press, Anaheim, CA, pp. 172-178, 1999. (www.jillesvangurp.com/static/fsm-sea99.pdf)