Skip to content

RFC: Powertools for AWS (TypeScript) v2 #1714

Closed
@dreamorosi

Description

@dreamorosi

Is this related to an existing feature request or issue?

No response

Which Powertools for AWS Lambda (TypeScript) utility does this relate to?

Other

Summary

As already indicated in the public roadmap, in the coming months we will be releasing a new major version.

This will allow us to both introduce new features as well as quality of life improvements that might require breaking changes or otherwise special attention.

Use case

The next major release will have two goals:

  • Introduce new features that require breaking changes
  • Improve the three existing core utilities with practices that we have learned but haven't applied to avoid changes

The two areas that will definitely require breaking changes are:

In addition to the above we are also going to take the opportunity to improve other areas of the codebase. Some of these changes might also require breaking changes. For each one of them we are committed to consider the tradeoffs and keep this issue updated as we investigate.

Proposal

All the work for this release will happen in a separate branch feat/v2, this will allow us to publish alpha releases to the npm registry independently from the main version (1.x). This will allow customers to get early access to the new features and optionally start applying the required changes or simply give feedback on the new items.

Quick summary

Item Issue Status Code change required Notes
ES Modules support #521
Drop Node.js 14 support #1686
Tracer capture sync methods #1204 no demand
Logger format all attributes #1261 Yes
Logger observability providers #1500
Logger widen arguments types #1777 more feedback needed
Tracer captureLambdaHandler higher order function #1833 more feedback needed
Logger sampling - dynamically change to debug #1136 Yes
Logger exotic types - support Set and Map #1649 closed in favor of #1776
JMESPath functions #1298 🚧
Remove createTracer & createLogger helpers #1721 Yes
Remove events and context samples from commons #1354 tests only
Support arm64 Lambda Layer #1374
Isolate imports for middleware in core utilities #1759 Yes
Revisit types & interfaces for Logger #1729 Yes
Revisit types & interfaces for Metrics #1731 Yes
Revisit types & interfaces for Tracer #1730 Yes
Create upgrade guide in docs #1983 🚧
Create automation for next pre-releases #1717
Create automation to publish v2 docs under next #1718
Experiment with tslib runtime helpers #1674 see issue for more info

Legend for Status column:

  • ✅ Completed
  • 🚧 Work in Progress
  • ❌ Canceled / rescheduled to future release
  • 🗓Backlog

Out of scope

The following items will not be part of this milestone:

Potential challenges

Nothing is perfect and the plan laid out above is somewhat ambitious, for this reason if some unforeseen blocker comes up we might decide to reprioritize and exclude some issues from the milestone.

Dependencies and Integrations

No response

Alternative solutions

No response

Acknowledgment

Future readers

Please react with 👍 and your use case to help us understand customer demand.

Footnotes

  1. We will continue working on feature parity in parallel, but their release is not tied to this milestone.

Metadata

Metadata

Assignees

Labels

RFCTechnical design documents related to a feature requestcompletedThis item is complete and has been merged/shipped

Type

No type

Projects

Status

Shipped

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions