-
Notifications
You must be signed in to change notification settings - Fork 23
feat(adr): establish a performance working group #306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 4 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
a7e43f1
feat(rfc): establish a performance working group
wesleytodd d3da4f8
Update docs/adr/performance-wg.md
wesleytodd 7791d1b
Update docs/adr/performance-wg.md
wesleytodd a8315b7
fix: some review edits
wesleytodd b1dfde8
Update docs/adr/performance-wg.md
wesleytodd File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| # ADR [Number]: Performance Working Group | ||
|
|
||
| ## Status | ||
|
|
||
| Proposed | ||
|
|
||
| ## Submitters | ||
|
|
||
| - @wesleytodd | ||
|
|
||
| ## Decision Owners | ||
|
|
||
| - @expressjs/express-tc | ||
|
|
||
| ## Context | ||
|
|
||
| Express has traditionally taken a very lax approach to performance. Historically this has meant poor outcomes with | ||
| and lack of visibility around how changes impact performance. The goal of this working | ||
| group is to centralize discussion so the whole ecosystem of packages can benefit from targeted performance work. The | ||
| scope of this WG would be all active packages in the `expressjs`, `pillarjs` and `jshttp` orgs with an initial focus on | ||
| the ones which are direct dependencies of `express` itself. | ||
|
|
||
| **Why do we need a working group?** | ||
|
|
||
| The current state is we have many open PRs, in flight initiatives, and planned future work. With a loose approach we | ||
| can easily have duplicated work, conflicting approaches, or focus on the wrong outcomes. By giving this WG scope over | ||
| this we can centralize the discussion and plans so that we unlock better and faster work in the individual packages. | ||
|
|
||
| Additionally, there will be continued long term work to monitor and maintain the tooling. The WG structure gives a clear | ||
| place for users, contributors, and other interested parties to go so it is less difficult to find across the many org's | ||
| and repositories the project owns. | ||
|
|
||
| ## Decision | ||
|
|
||
| Similar to the Security WG, we will setup a new repo (expressjs/perf-wg) and corresponding plan of action. The WG will | ||
| be delegated responsibility for driving concensus on initiatives within scope. This group will have three primary goals: | ||
|
|
||
| 1. Organize the effort. We want to make sure we are not rebuilding the same things or having the same disucssions in | ||
| many package repos at once. | ||
| 2. Provide and maintain tooling for all the packages/repos to produce reliable performance metrics and benchmarks. | ||
| Examples include: workflows, infra and guidelines on types of benchmarks | ||
| 3. Proritize and execute performance improvements across the packages. These do not need to be done *by* the members of | ||
| the WG, but it would be good if we could get reviews by the team we will setup to ensure folks with most experience | ||
| can help address performance issues across the project. | ||
|
|
||
| We will need to take a few actions to get this started: | ||
|
|
||
| 1. Create a new `perf-wg` repo | ||
| 2. Create teams: `@expressjs/perf-wg`, `@pillarjs/perf-wg`, `@jshttp/perf-wg` | ||
| 3. Write charter/goals doc in the new repo | ||
| 4. Schedule a recurring (monthly) meeting | ||
|
|
||
| ### Relation to STF | ||
|
|
||
| Lastly, this kicko-off work is being funded by the STF program. It is a part of our larger work around security | ||
| improvements for the project. There are two parts of that program which fall under this WG's purview: | ||
|
|
||
| 1. Milestone 6: Monitor performance across Express and direct dependencies | ||
| - Owner: @wesleytodd | ||
| - Delivery Date: Dec 31, 2025 | ||
| - Estimated Budget: €25,200 | ||
| 2. Milestone 9: Improve performance for Express and critical dependencies | ||
| - Owner: @wesleytodd & @blakeembrey | ||
| - Delivery Date: Jun 30, 2026 | ||
| - Estimated Budget: €46,200 | ||
|
|
||
| This funding does not mean the work can only be done by the owners, it just means that we are responsible for organizing | ||
| and executing on the deliverables. This is our first attempt at doing a program like this, so feedback is welcome. | ||
|
|
||
| ## References | ||
|
|
||
| - https://github.com/expressjs/express/pull/6129 | ||
| - https://github.com/expressjs/express/issues/5998 | ||
| - open-telemetry/opentelemetry-js-contrib#2437 | ||
| - openjs-foundation/infrastructure#5 | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.