Programming for fun and profit

A blog about software engineering, programming languages and technical tinkering

AWS

Using an EventSourceMapping to feed Kinesis records into a Lambda function

  • The ESM calls the Lambda function synchronously
    • Pitfall: A DLQ configured on the Lambda function itself only applies to asynchronous invocations. Need to configure the DLQ as an on-failure destination on the ESM
  • If retries are not configured on the ESM, the default behavior is to retry until the records on the data stream expire
  • Retries are literally what it sounds like: retries in addition to the initial attempt
    • So, X retries means a total of X+1 attempts
    • It's easy to conflate the MaximumRetryAttempts on the ESM with the maxReceiveCount attribute on SQS, where X maximum receives means X total attempts