Skip to content

Roadmap

Overview

Our public roadmap outlines the high level direction we are working towards, namely Themes. We update this document when our priorities change: security and stability is our top priority.

For most up-to-date information, see our board of activities.

Themes

Operational Excellence is priority number 1. This means bug fixing, stability, security, customer's support, and governance will take precedence above all else.

What are themes?

They are key activities maintainers are focusing on. These are updated periodically and you can find the latest under Themes in our public board.

Observability providers

We want to extend Tracer, Metrics, and Logger to support any AWS Lambda certified observability partner, along with OpenTelemetry.

At launch, we will support Datadog since it's most requested observability provider. OpenTelemetry will be a fast follow-up as we need to decide on a stable solution to cold start penalty.

Help us identify which observability providers we should integrate next. Open feature request or by voting +1 in existing issues

Major updates

Sensitive Data Masking

Data Masking will be a new utility to mask/unmask sensitive data using encryption providers. It's the second most voted feature request (behind Observability Providers).

Major updates

Revamp Event Handler

Event Handler provides lightweight routing for both REST: Amazon API Gateway, Amazon Elastic Load Balancer and AWS Lambda Function URL, and GraphQL: AWS AppSync.

Based on customers feedback, we want to provide middleware authoring support for cross-cutting concerns. For REST APIs, we are also looking into auto-generate OpenAPI Schemas and a SwaggerUI route. For GraphQL, we are working on supporting batch invocations (N+1 problem) along with partial failure support.

Major updates

Lambda Layer in release notes

We want to publish a JSON with a map of region and Lambda Layer ARN as a GitHub Release Note asset.

As of V2, we prioritize Lambda Layers being available before release notes are out. This is due to X86 and ARM64 compilation for smaller binaries and extra speed.

This means we have room to include a JSON map for Lambda Layers and facilitate automation for customers wanting the latest version as soon as it's available.

Major updates

  • Create secure mechanism to upload signed assets to GitHub Release Notes
  • Create feature request to agree on JSON structure and asset name

Office hours

We heard from customers that Powertools for AWS Lambda and its community can move faster than they are able to catch up. While documentation and release notes take these into account, they notice they don't always know advanced tricks, or what other customers tend to do in similar situations.

We want to run a monthly office hours to start addressing that, and learn from customers how they're using Powertools and whether or not they need a closer support.

Timezones being tricky, we plan to experiment with an afternoon slot in Central European that would also cover Middle East, US east coast, and South America. Depending on attendance, we plan to A/B test an Asia friendly one too.

Major updates

  • Decide whether to use Amazon Chime or Zoom (we had audio setup issues on Discord)

Authentication (SigV4)

During customers interview, we hear that signing requests using AWS SigV4 could be easier.

Since JWT is a close second, this new utility would cover higher level functions to sign and verify requests more easily.

Major updates

  • RFC to outline challenges, alternative solutions and desired experience
  • MVP based off RFC

Enhanced operational metrics

Through customers interview, Discord, and 1:1 customer enablement, we noticed customers often create the same set of custom operational metrics.

We want to make this easier by extending certain utilities to accept a metrics instance and metrics configuration (what metrics to create). It would be opt-in due to costs associated with creating metrics.

Got ideas for custom metrics? Open up a feature request

Major updates

  • RFC to outline metrics for Batch (e.g., Failed items, Batch size)
  • RFC to outline metrics for Feature flags (e.g., matched rules)
  • RFC to outline metrics for Event Handler (e.g., validation errors )
  • RFC to outline metrics for Idempotency (e.g., cache hit)

Lambda Layer in GovCloud and China region

We want to investigate security and scaling requirements for these special regions, so they're in sync for every release.

Help us prioritize it by reaching out to your AWS representatives or via email.

Major updates

  • Gather agencies and customers name to prioritize it
  • Investigate security requirements for special regions
  • Create additional infrastructure for special regions
  • Update CDK Layer construct to include regions

V3

With Python 3.7 reaching end-of-life in AWS Lambda by the end of the year, we want to plan some breaking changes. As always, we plan on having ample notice, a detailed upgrade guide, and keep breaking changes to a minimum to ease transition (e.g., it took ~7 months from v2 to surpass v1 downloads).

For example, these are on our mind but not settled yet until we have a public tracker to discuss what these means in detail.

  • Parser: Drop Pydantic v1
  • Parser: Deserialize Amazon DynamoDB data types automatically (like Event Source Data Classes)
  • Parameters: Increase default max_age for get_secret
  • Event Source Data Classes: Return sane defaults for any property that has Optional[<type>] returns
  • Python 3.7 EOL: Update PyPi and Layers to only support 3.8
  • Upgrade tool: Consider building a CST (Concrete Syntax Tree) tool to ease certain upgrade actions like pyupgrade and django-upgrade
  • Batch: Stop at first error for Amazon DynamoDB Streams and Amazon Kinesis Data Streams (e.g., stop_on_failure=True)

Major updates

  • Create an issue to track breaking changes we consider making
  • Create a v3 branch to allow early experimentation
  • Create workflows to allow pre-releases
  • Create a mechanism to keep ideas for breaking change somewhere regardless of v3

Roadmap status definition

graph LR
    Ideas --> Backlog --> Work["Working on it"] --> Merged["Coming soon"] --> Shipped
Visual representation

Within our public board, you'll see the following values in the Status column:

  • Ideas. Incoming and existing feature requests that are not being actively considered yet. These will be reviewed when bandwidth permits.
  • Backlog. Accepted feature requests or enhancements that we want to work on.
  • Working on it. Features or enhancements we're currently either researching or implementing it.
  • Coming soon. Any feature, enhancement, or bug fixes that have been merged and are coming in the next release.
  • Shipped. Features or enhancements that are now available in the most recent release.

Tasks or issues with empty Status will be categorized in upcoming review cycles.

Process

graph LR
    PFR[Feature request] --> Triage{Need RFC?}
    Triage --> |Complex/major change or new utility?| RFC[Ask or write RFC] --> Approval{Approved?}
    Triage --> |Minor feature or enhancement?| NoRFC[No RFC required] --> Approval
    Approval --> |Yes| Backlog
    Approval --> |No | Reject["Inform next steps"]
    Backlog --> |Prioritized| Implementation
    Backlog --> |Defer| WelcomeContributions["help-wanted label"]
Visual representation

Our end-to-end mechanism follows four major steps:

  • Feature Request. Ideas start with a feature request to outline their use case at a high level. For complex use cases, maintainers might ask for/write a RFC.
    • Maintainers review requests based on project tenets, customers reaction (πŸ‘), and use cases.
  • Request-for-comments (RFC). Design proposals use our RFC issue template to describe its implementation, challenges, developer experience, dependencies, and alternative solutions.
    • This helps refine the initial idea with community feedback before a decision is made.
  • Decision. After carefully reviewing and discussing them, maintainers make a final decision on whether to start implementation, defer or reject it, and update everyone with the next steps.
  • Implementation. For approved features, maintainers give priority to the original authors for implementation unless it is a sensitive task that is best handled by maintainers.
See Maintainers document to understand how we triage issues and pull requests, labels and governance.

Disclaimer

The Powertools for AWS Lambda (Python) team values feedback and guidance from its community of users, although final decisions on inclusion into the project will be made by AWS.

We determine the high-level direction for our open roadmap based on customer feedback and popularity (πŸ‘πŸ½ and comments), security and operational impacts, and business value. Where features don’t meet our goals and longer-term strategy, we will communicate that clearly and openly as quickly as possible with an explanation of why the decision was made.

FAQs

Q: Why did you build this?

A: We know that our customers are making decisions and plans based on what we are developing, and we want to provide our customers the insights they need to plan.

Q: Why are there no dates on your roadmap?

A: Because job zero is security and operational stability, we can't provide specific target dates for features. The roadmap is subject to change at any time, and roadmap issues in this repository do not guarantee a feature will be launched as proposed.

Q: How can I provide feedback or ask for more information?

A: For existing features, you can directly comment on issues. For anything else, please open an issue.


Last update: 2023-10-06