Async Lambda Event Sources #1352
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To speed up local actions and to be a bit closer to production behavior, lambda events triggered by an event source should be done so asynchronously.
This change makes async processing the default behavior, but allows each service (API Gateway, SNS, Kinesis, DyanmoDB, and SQS) to turn on synchronous processing with environment variables.
This may be a short-sighted change, but I can't see a major reason for synchronous processing to be blocking by default - please let me know if I'm missing a use-case.
This change is necessary as I'm using a custom go1.x runtime image that only allows on event to be processed at a time (simulating a reserved concurrency of one), and synchronous events deadlock if a dynamodb handler publishes a record back to dynamodb. Setting them as async does exactly what we're looking for.