A controlled technique for improving the design of serverless applications by replacing application code with equivalent automation code.
This repo contains catalog of these refactorings.
Refactoring | Description |
---|---|
Extract Function Invocation | Instead of calling one Lambda function directly from another, use Lambda Destinations instead |
Extract Send Message to Lambda Destination | Instead of sending SQS messages via code, use Lambda Destinations instead |
Replace Lambda with Service Integration | Service integration allows direct calls to any AWS Service API from Step Functions without the need for an additional Lambda function |
Replace Polling with Callback | Instead of polling for results, use Step Function's 'Wait for a Callback with the Task Token' |
Direct database access | Replace a Lambda function that only reads from DynamoDB with Step Function's getItem task |
Extract Send Message to DynamoDB Stream | Instead of a Lambda function sending a message after updating DynamoDB, use DynamoDB Streams plus EventBridge Pipes |
Orchestration to Choreography | Convert the collaboration pattern from orchestration to choreography |
Replace Parallel with SNS Scatter-Gather | Instead of making parallel invocations from a Step Functions Parallel step, send a message to SNS |
Extract Message Router | Instead of using a Lambda function to route messages to different consumers, use EventBridge Rules |
Choreography to Orchestration | Replace a distributed message flow with a Step Function Orchestrator |
Sindhu Pillai, Sr. Solutions Architect, AWS
Gregor Hohpe, Enterprise Strategist, AWS
Svenja Raether,Associate ProServe Specialist, AWS
Abel Fresnillo Silva, Sr. Solutions Architect, AWS
Eugene Kim, Sr. Solutions Architect, AWS
Pengfei Zhang, Sr. Solutions Architect, AWS
Agostino Di Figlia, Sr. Cloud Application Architect, AWS
Bhuvan Annamreddi, Associate Solutions Architect, AWS
More details here