Description
Background
AWS Lambda Powertools is a suite of utilities to ease adopting best practices defined in the Well-Architected Serverless Lens. Our mission is to help customers implement these practices as early in their software development cycle as possible. We carefully crafted our Tenets to help govern our decision making, as we make progress towards our mission.
The AWS staff maintaining this project do so in their spare time. A small group of AWS staff volunteers, including Solutions Architects and Professional Services Consultants, governs each Lambda Powertools language separately. We meet regularly to share lessons learned across languages to improve the experience for everyone. This helps us stay focussed on the end-to-end user experience for each language while considering that customers may use multiple languages and AWS services.
Growth
Lambda Powertools for Python became general available in June 2020 with three core features: tracing, structured logging, and asynchronous metrics. Since then, we have launched Lambda Powertools for Java, 11 new utilities for Lambda Powertools for Python, and more recently, a beta for Lambda Powertools for TypeScript.
For Python, we have experienced unprecedented growth, going from 5K to ~800K downloads per month in less than 20 months. This rapid growth has led to a vibrant community building effort. Community submissions now contribute, on average, 50-60% to each release. These contributions vary from documentation, features, bug fixes, Request for Comments (RFC), and blog posts.
It takes a significant amount of our spare time to triage, discuss, review, answer follow-up questions, and merge contributions. As customer activities in our daily jobs increases, our spare time became even scarcer. As with any successful, fast-growing project, we have accumulated technical and project management debt.
As a result, we need to change how we work to make it sustainable for everyone involved: customers, community, and maintainers.
Moving forward
For the AWS Lambda Powertools for Python, we are shifting our focus to Operational Excellence, prioritizing stabilization over new features and enhancements. This focus period will last until the end of July 2022. During this time, we are pausing external contributions as we work on more sustainable mechanisms to communicate and collaborate with the community. We will continue to support bug reports but no longer feature requests until the end of this period.
This allows us to focus on the following activities:
- Operational Excellence. Lambda Powertools for Python has an estimated 6.5 million downloads (as of Feb 2022) with 200K weekly downloads, and hundreds of customers using it in production. This means reliability is at the core of what we do, regardless of this pause.
- Roadmap. Experiment with the new GitHub Project Beta. This allows us to offer an improved view of our current priorities, backlog, ideas, and more easily emphasize areas we need for customer feedback. Centralize cross-languages concerns to expose expected vs optional feature parity across them. Revise the use of GitHub Discussions over Slack to improve discoverability and long-running discussions
- Refresh contribution guidelines. Ease new contributor on-boarding by automating cloud developer environments (i.e. GitPod.io). Provide detailed guidance on mechanisms to triage and prioritize all community contributions. Clarify requirements for bug reports. Describe circumstances when a maintainer may close or reopen an issue/pull request.
We wish to acknowledge how extremely grateful we are for the work of several individuals who have helped shape Lambda Powertools into what it is today. Your contributions within and outside GitHub help thousands of customers adopt best practices when building serverless applications.
We appreciate your understanding as we focus on this stabilization period. We can't wait to get back to accepting external feature contributions again in a way that responsibly looks after our maintainers' mental well-being.
Kindly, the maintainers of AWS Lambda Powertools for Python.