Skip to content

Commit 47349c1

Browse files
authored
docs: add roadmap page and include roadmap for 2025
2 parents b232265 + 76dce86 commit 47349c1

File tree

3 files changed

+145
-3
lines changed

3 files changed

+145
-3
lines changed

docs/FAQs.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: Frequently Asked Questions
66

77
## How can I use Powertools for AWS Lambda (Java) with Lombok?
88

9-
Poweretools uses `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. In case you want to use `Lombok` or other compile-time preprocessor for your project, it is required to change `aspectj-maven-plugin` configuration to enable in-place weaving feature. Otherwise the plugin will ignore changes introduced by `Lombok` and will use `.java` files as a source.
9+
Powertools uses `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. In case you want to use `Lombok` or other compile-time preprocessor for your project, it is required to change `aspectj-maven-plugin` configuration to enable in-place weaving feature. Otherwise, the plugin will ignore changes introduced by `Lombok` and will use `.java` files as a source.
1010

1111
To enable in-place weaving feature you need to use following `aspectj-maven-plugin` configuration:
1212

@@ -29,7 +29,7 @@ To enable in-place weaving feature you need to use following `aspectj-maven-plug
2929

3030
## How can I use Powertools for AWS Lambda (Java) with Kotlin projects?
3131

32-
Poweretools uses `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. When using it with Kotlin projects, it is required to `forceAjcCompile`.
32+
Powertools uses `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. When using it with Kotlin projects, it is required to `forceAjcCompile`.
3333
No explicit configuration should be required for gradle projects.
3434

3535
To enable `forceAjcCompile` you need to use following `aspectj-maven-plugin` configuration:

docs/roadmap.md

+139
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
title: Roadmap
3+
description: Public roadmap for Powertools for AWS Lambda (Java)
4+
---
5+
6+
## Overview
7+
8+
Our public roadmap outlines the high level direction we are working towards. We update this document when our priorities change: security and stability are our top priority.
9+
10+
### Key areas
11+
12+
Security and operational excellence take precedence above all else. This means bug fixing, stability, customer's support, and internal compliance may delay one or more key areas below.
13+
14+
!!! info "We may choose to re-prioritize or defer items based on customer feedback, security, and operational impacts, and business value."
15+
16+
#### Release Security (p0)
17+
18+
Our top priority is to establish the processes and infrastructure needed for a fully automated and secure end-to-end release process of new versions to Maven Central.
19+
20+
- [ ] Implement GitHub workflows and create infrastructure to release to Maven Central
21+
- [ ] Implement end-to-end tests
22+
- [ ] Implement [OpenSSF Scorecard](https://openssf.org/projects/scorecard/){target="\_blank"}
23+
24+
#### `v2` Release: Consistency and Ecosystem (p1)
25+
26+
As part of a new major version `v2` release, we prioritize the Java project's consistency of core utilities (Logging, Metrics, Tracing) with the other runtimes (Python, TypeScript, .NET). Additionally, we will focus on integrating the library with popular technologies and frameworks from the Java and AWS ecosystem. Particularly, we aim at leveraging new techniques to allow customers to reduce Lambda cold-start time. The `v2` release will also drop support for Java 8 moving to Java 11 as the baseline.
27+
28+
##### Core Utilities
29+
30+
- [ ] [Review public interfaces and reduce public API surface area](https://github.com/aws-powertools/powertools-lambda-java/issues/1283){target="\_blank"}
31+
- [ ] [Release Logging `v2` module](https://github.com/aws-powertools/powertools-lambda-java/issues/965){target="\_blank"}
32+
- [ ] [Support high resolution metrics](https://github.com/aws-powertools/powertools-lambda-java/issues/1041){target="\_blank"}
33+
34+
##### Ecosystem
35+
36+
- [ ] [Add GraalVM support](https://github.com/aws-powertools/powertools-lambda-java/issues/764){target="\_blank"}
37+
- [ ] [Implement priming using CRaC to improve AWS Snapstart support](https://github.com/aws-powertools/powertools-lambda-java/issues/1588){target="\_blank"}
38+
- [ ] [Evaluate integration with popular Java frameworks such as Micronaut, Spring Cloud Function, or Quarkus](https://github.com/aws-powertools/powertools-lambda-java/issues/1701){target="\_blank"}
39+
40+
##### Other
41+
42+
- [ ] [Validation module integration with HTTP requests](https://github.com/aws-powertools/powertools-lambda-java/issues/1298){target="\_blank"}
43+
- [ ] [Support validation module from within the batch module](https://github.com/aws-powertools/powertools-lambda-java/issues/1496){target="\_blank"}
44+
- [ ] Documentation: Review and improve documentation to be consistent with other runtimes
45+
46+
#### Feature Parity (p2)
47+
48+
If priorities `p0` and `p1` are addressed, we will also focus on feature parity of non-core utilities. This allows customers to achieve better standardization of their development processes across different Powertools runtimes.
49+
50+
- [ ] [Re-evaluate if there is a need for adding a lightweight customer Powertools event handler](https://github.com/aws-powertools/powertools-lambda-java/issues/1103){target="\_blank"}
51+
- [ ] [Add Feature Flags module](https://github.com/aws-powertools/powertools-lambda-java/issues/1086){target="\_blank"}
52+
- [ ] [Add S3 Streaming module](https://github.com/aws-powertools/powertools-lambda-java/issues/1085){target="\_blank"}
53+
- [ ] Add support for Data Masking during JSON serialization
54+
55+
### Missing something?
56+
57+
You can help us prioritize by [upvoting existing feature requests](https://github.com/aws-powertools/powertools-lambda-java/issues?q=is%3Aissue%20state%3Aopen%20label%3Aenhancement){target="\_blank"},
58+
leaving a comment on what use cases it could unblock for you, and by joining our discussions on Discord.
59+
60+
[![Join our Discord](https://dcbadge.vercel.app/api/server/B8zZKbbyET)](https://discord.gg/B8zZKbbyET){target="\_blank"}
61+
62+
### Roadmap status definition
63+
64+
<center>
65+
```mermaid
66+
graph LR
67+
Ideas --> Backlog --> Work["Working on it"] --> Merged["Coming soon"] --> Shipped
68+
```
69+
<i>Visual representation</i>
70+
</center>
71+
72+
Within our [public board](https://github.com/orgs/aws-powertools/projects/4/){target="\_blank"}, you'll see the following values in the `Status` column:
73+
74+
- **Ideas**. Incoming and existing feature requests that are not being actively considered yet. These will be reviewed
75+
when bandwidth permits.
76+
- **Backlog**. Accepted feature requests or enhancements that we want to work on.
77+
- **Working on it**. Features or enhancements we're currently either researching or implementing it.
78+
- **Coming soon**. Any feature, enhancement, or bug fixes that have been merged and are coming in the next release.
79+
- **Shipped**. Features or enhancements that are now available in the most recent release.
80+
81+
> Tasks or issues with empty `Status` will be categorized in upcoming review cycles.
82+
83+
### Process
84+
85+
<center>
86+
```mermaid
87+
graph LR
88+
PFR[Feature request] --> Triage{Need RFC?}
89+
Triage --> |Complex/major change or new utility?| RFC[Ask or write RFC] --> Approval{Approved?}
90+
Triage --> |Minor feature or enhancement?| NoRFC[No RFC required] --> Approval
91+
Approval --> |Yes| Backlog
92+
Approval --> |No | Reject["Inform next steps"]
93+
Backlog --> |Prioritized| Implementation
94+
Backlog --> |Defer| WelcomeContributions["help-wanted label"]
95+
```
96+
<i>Visual representation</i>
97+
</center>
98+
99+
Our end-to-end mechanism follows four major steps:
100+
101+
- **Feature Request**. Ideas start with a [feature request](https://github.com/aws-powertools/powertools-lambda-java/issues/new?template=feature_request.md){target="\_blank"} to outline their use case at a high level. For complex use cases, maintainers might ask for/write a
102+
RFC.
103+
- Maintainers review requests based on [project tenets](index.md#tenets){target="\_blank"}, customers reaction (👍),
104+
and use cases.
105+
- **Request-for-comments (RFC)**. Design proposals use
106+
our [RFC template](https://github.com/aws-powertools/powertools-lambda-java/issues/new?q=is%3Aissue+state%3Aopen+label%3Aenhancement&template=rfc.md){target="\_blank"} to describe its implementation, challenges, developer experience, dependencies, and alternative solutions.
107+
- This helps refine the initial idea with community feedback before a decision is made.
108+
- **Decision**. After carefully reviewing and discussing them, maintainers make a final decision on whether to start
109+
implementation, defer or reject it, and update everyone with the next steps.
110+
- **Implementation**. For approved features, maintainers give priority to the original authors for implementation unless
111+
it is a sensitive task that is best handled by maintainers.
112+
113+
!!! info "See [Maintainers](./processes/maintainers.md){target="\_blank"} document to understand how we triage issues and pull requests, labels and governance."
114+
115+
### Disclaimer
116+
117+
The Powertools for AWS Lambda (Java) team values feedback and guidance from its community of users, although final
118+
decisions on inclusion into the project will be made by AWS.
119+
120+
We determine the high-level direction for our open roadmap based on customer feedback and popularity (👍🏽 and comments),
121+
security and operational impacts, and business value. Where features don’t meet our goals and longer-term strategy, we
122+
will communicate that clearly and openly as quickly as possible with an explanation of why the decision was made.
123+
124+
### FAQs
125+
126+
**Q: Why did you build this?**
127+
128+
A: We know that our customers are making decisions and plans based on what we are developing, and we want to provide our
129+
customers the insights they need to plan.
130+
131+
**Q: Why are there no dates on your roadmap?**
132+
133+
A: Because job zero is security and operational stability, we can't provide specific target dates for features. The
134+
roadmap is subject to change at any time, and roadmap issues in this repository do not guarantee a feature will be
135+
launched as proposed.
136+
137+
**Q: How can I provide feedback or ask for more information?**
138+
139+
A: For existing features, you can directly comment on issues. For anything else, please open an issue.

mkdocs.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ nav:
77
- Changelog: changelog.md
88
- Workshop 🆕: https://s12d.com/powertools-for-aws-lambda-workshop" target="_blank
99
- FAQs: FAQs.md
10+
- Roadmap: roadmap.md
1011
- Core utilities:
1112
- core/logging.md
1213
- core/tracing.md
@@ -61,8 +62,10 @@ markdown_extensions:
6162
alternate_style: true
6263
- pymdownx.details
6364
- pymdownx.snippets:
64-
base_path: '.'
65+
base_path: "."
6566
check_paths: true
67+
- pymdownx.tasklist:
68+
custom_checkbox: true
6669
- pymdownx.superfences:
6770
custom_fences:
6871
- name: mermaid

0 commit comments

Comments
 (0)