(This repo is maintained by an SSAE 16 SOC 1 Type 2 compliant organization)
A Python 2.7 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) Redis for idempotency
- (Optionally) AWS DynamoDB for idempotency
- (Optionally) AWS CloudWatch for error and failure monitoring
or
- AWS Lambda for code execution
- (Experimental) AWS Step Functions for orchestration and retries,
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)