Skip to content


All notable changes to this project will be documented in this file.

This project follows Keep a Changelog format for changes and adheres to Semantic Versioning.


[1.12.3] - 2022-07-12


  • Fixes to resolve vulnerable transitive dependencies (919)

[1.12.2] - 2022-04-29

Bug Fixes

  • SQS Large message processing: Classpath conflict on PayloadS3Pointer when consumer application depends on payloadoffloading-common, introduced in v1.8.0. (#851)

[1.12.1] - 2022-04-21

Bug Fixes

  • Idempotency: thread-safety issue of MessageDigest (#817)
  • Idempotency: disable dynamodb client creation in persistent store when disabling idempotency (#796)


  • deps: Bump third party dependencies to the latest versions.

[1.12.0] - 2022-03-01


  • Easy Event Deserialization: Extraction and deserialization of the main content of events (body, messages, ...) #757

Bug Fixes

  • Different behavior while using SSMProvider with or without trailing slash in parameter names #758

[1.11.0] - 2022-02-16


  • Powertools Idempotency module: New module to get your Lambda function Idempotent (#717)
  • Powertools Serialization module: New module to handle JSON (de)serialization (Jackson ObjectMapper, JMESPath functions)

[1.10.3] - 2022-02-01

Bug Fixes

  • SQS Batch processing: Prevent message to be marked as success if failed sending to DLQ for non retryable exceptions. #731


  • SQS Batch processing: Improve documentation on IAM premissions required by function when using utility with an encrypted SQS queue with customer managed KMS keys.

[1.10.2] - 2022-01-07

  • Tracing: Ability to override object mapper used for serializing method response as trace metadata when enabled. This provides users ability to customize how and what you want to capture as metadata from method response object. #698

[1.10.1] - 2022-01-06

[1.10.0] - 2021-12-27

  • Logging: Modern log4j configuration to customise structured logging. Refer docs to start using new config. #670
  • SQS Batch: Support batch size greater than 10. #667

[1.9.0] - 2021-12-21

  • Logging: Upgrade Log4j to version 2.17.0 for CVE-2021-45105
  • Tracing: add Service annotation. #654

[1.8.2] - 2021-12-15


[1.8.1] - 2021-12-10


[1.8.0] - 2021-11-05


  • Powertools Cloudformation module (NEW): New module simplifying AWS Lambda-backed custom resources written in Java. #560
  • SQS Large message processing: Ability to override the default S3Client use to fetch payload from S3. #602


  • Logging: @Logging annotation now works with @Tracing annotation on RequestStreamHandler when used in logEvent mode. #567


  • deps: Bump third party dependencies to the latest versions.

[1.7.3] - 2021-09-14

  • SQS Batch processing: Ability to move non retryable message to configured dead letter queue(DLQ). #500

[1.7.2] - 2021-08-03

  • Powertools All Modules: Upgrade to the latest(1.14.0) aspectj-maven-plugin which also supports Java 9 and newer versions. Users no longer need to depend on com.nickwongdev as a workaround. #489
  • Logging: Performance optimisation to improve cold start. #484
  • SQS Batch processing/Large message: Module now lazy loads default SQS client. #484

[1.7.1] - 2021-07-06

  • Powertools All Modules: Fix static code analysis violations done via spotbugs (#458).

[1.7.0] - 2021-07-05


  • Logging: Support for extracting Correlation id using @Logging annotation via correlationIdPath attribute and setCorrelationId() method in LoggingUtils(#448).
  • Logging: New clearState attribute on @Logging annotation to clear previously added custom keys upon invocation(#453).


  • deps: Bump third party dependencies to the latest versions.

[1.6.0] - 2021-06-21


  • Tracing: Support for Boolean and Number type as value in TracingUtils.putAnnotation()(#423).
  • Logging: API to remove any additional custom key from logger entry using LoggingUtils.removeKeys()(#395).


  • deps: Bump third party dependencies to the latest versions.

[1.5.0] - 2021-03-30

  • Metrics: Ability to set multiple dimensions as default dimensions via MetricsUtils.defaultDimensions(). Introduced in v1.4.0 MetricsUtils.defaultDimensionSet() is deprecated now for better user experience.

[1.4.0] - 2021-03-11

  • Metrics: Ability to set default dimension for metrics via MetricsUtils.defaultDimensionSet().

Note: If your monitoring depends on default dimensions captured before via aws-embedded-metrics-java, those either need to be updated or has to be explicitly captured via MetricsUtils.defaultDimensionSet().

[1.3.0] - 2021-03-05

  • Powertools: It now works out of the box with code guru profile handler implementation.
  • Logging: Ability to override object mapper used for logging event. This provides customers ability to customize how and what they want to log from event.
  • Metrics: Module now by default captures AWS Request id as property if used together with Metrics annotation. It will also capture Xray Trace ID as property if tracing is enabled. This ensures good observability and tracing.
  • Metrics:withSingleMetric from `MetricsUtils can now pick the default namespace specified either on Metrics annotation or via POWERTOOLS_METRICS_NAMESPACE env var, without need to specify explicitly for each call.
  • Metrics:Metrics annotation captures metrics even in case of unhandled exception from Lambda function.
  • Docs: Migrated from Gatsby to MKdocs documentation system