Skip to content

Commit 1f6a42b

Browse files
committed
feat(rfc): establish a performance working group
1 parent 4cbf46e commit 1f6a42b

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

docs/adr/performance-wg.md

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# ADR [Number]: Performance Working Group
2+
3+
## Status
4+
5+
Proposed
6+
7+
## Submitters
8+
9+
- @wesleytodd
10+
11+
## Decision Owners
12+
13+
- @expressjs/express-tc
14+
15+
## Context
16+
17+
Express has traditionally taken a very lax approach to performance. Historically this has meant poor outcomes with
18+
regard to performance and lack of visibility around how changes impact performance. The goal of this proposed working
19+
group is to centralize discussion so the whole ecosystem of packages can benefit from targeted performance work. The
20+
scope of this WG would be all active packages in the `expressjs`, `pillarjs` and `jshttp` orgs with a special focus on
21+
the ones which are direct dependencies of `express` itself.
22+
23+
**Why do we need a working group?**
24+
25+
The current state is we have many open PRs, in flight initiatives, and planned future work. With a loose approach we
26+
can easily have duplicated work, conflicting approaches, or focus on the wrong outcomes. By giving this WG scope over
27+
this we can centralize the discussion and plans so that we unlock better and faster work in the individual packages.
28+
29+
## Decision
30+
31+
Similar to the Security WG, we will setup a new repo (expressjs/perf-wg) and corresponding plan of action. The WG will
32+
be delegated responsibility for driving concensus around the current scope and future scope to be determined by the
33+
group once setup. This group will have three primary goals:
34+
35+
1. Organize the effort. We want to make sure we are not rebuilding the same things or having the same disucssions in
36+
many package repos at once.
37+
2. Provide and maintain tooling for all the packages/repos to produce reliable performance metrics and benchmarks. This
38+
should include but is not limited to: workflows, infra and guidelines on types of benchmarks.
39+
3. Proritize and execute performance improvements across the packages. These do not need to be done *by* the members of
40+
the WG, but it would be good if we could get reviews by the team we will setup to ensure folks with most experience
41+
can help address performance issues across the project.
42+
43+
We will need to take a few actions to get this started:
44+
45+
1. Create a new `perf-wg` repo
46+
2. Create teams: `@expressjs/perf-wg`, `@pillarjs/perf-wg`, `@jshttp/perf-wg`
47+
3. Write charter/goals doc in the new repo
48+
4. Schedule a recurring (monthly) meeting
49+
50+
Lastly, this work is being funded by the STF program. It is a part of our larger work around security improvements for
51+
the project. Because of this, we will need to have a bit more clarity on the scope of work and reporting so we can
52+
fulfill the contract requirements of that program. There are two parts of that program which fall under this WG's
53+
purview:
54+
55+
1. Milestone 6: Monitor performance across Express and direct dependencies
56+
- Owner: @wesleytodd
57+
- Delivery Date: Dec 31, 2025
58+
- Estimated Budget: €25,200
59+
2. Milestone 9: Improve performance for Express and critical dependencies
60+
- Owner: @wesleytodd & @blakeembrey
61+
- Delivery Date: Jun 30, 2026
62+
- Estimated Budget: €46,200
63+
64+
This funding does not mean the work can only be done by the owners, it just means that we are responsible for organizing
65+
and execuring on the deliverables. This is our first attempt at doing a program like this, so hopefully we can deliver
66+
on this well and show other orginacitions that investing in Open Source is worthwhile.
67+
68+
## References
69+
70+
- https://github.com/expressjs/express/pull/6129
71+
- https://github.com/expressjs/express/issues/5998

0 commit comments

Comments
 (0)