Powertools for AWS Lambda Grows with Help of Volunteers
In this episode of The New Stack Makers, on the road at the Linux Foundation’s Open Source Summit Europe in Bilbao, Spain last month, we sat down with two Amazon Web Services (AWS) colleagues to learn about Powertools for AWS Lambda and about the power of open source community building driving the growth of the project. Andrea Amorosi is a senior solutions architect at AWS and the lead maintainer of Powertools for AWS Lambda for TypeScript. Leandro Damascena is a specialist solutions architect at AWS and a leading contributor to Powertools for Python.
AWS Powertools began as an observability tool — “being able to ask arbitrary questions about your workloads,” Amorosi explained. Eventually, more advanced use cases were served:
- Making your workload safe to retry
- Batch processing
- Streaming data
“We really try to accompany our customers across their serverless journey,” he continued, “who started out as developers.” The community has since expanded to include security analysts who use scripting to secure their workloads, as well as DevOps engineers and data scientists. By not assuming who is making feature requests, Amorosi says they are more able to serve a broader AWS customer audience.
At last month’s Open Source Summit, they announced the new Powertools feature of idempotency for TypeScript, which Amorosi described as “a practice that allows you to make your workloads safe to retry and make sure that they happen exactly once. So, for instance, let’s imagine that you have a payment process, or you’re buying your tickets for the next concert, and you want to make sure that your customers are charged only once. So making a workload or an action item ‘idempotent’ means that even if this action happens multiple times, it’s really processed only once.”
This is a complex and nuanced feature, he explained, because you need to maintain some sort of state, while also making sure that everything is done safely. This new Powertools feature lets you accomplish idempotency with just a few lines of code. This is another step to create feature parity across TypeScript and Python.
The demand for this feature came directly from customers looking to adopt the AWS cloud computing best practices, Damascena said, whose customers have asked: “How can Powertools help us achieve best practices to develop a more resilient workload, or fault tolerance, to prevent duplicated requests?”
Best practices are best enforced at the left of the software development lifecycle.
“The philosophy behind Powertools is essentially, we heard from our customers that, by the time that they build and ready their workloads, and they do an assessment, it might be too late to apply those best practices because they need to go back and rearchitect and rewrite some code,” Amorosi said. “This is costly, both in terms of time and resources. So using something like Powertools can help you achieve those best practices during the development phase already so that you know that you’re building your workload, according to those best practices.”
One of the reasons Powertools sees adoption traction is the open source community backing it.
“Instead of having to reinvent the wheel with every single customer, every single time, they know that there is a community behind it and there is a concerted effort to maintain and to keep them up to date,” Amorosi observed. “It’s not just the initial investment, and the effort they need to make to build it, but also to maintain it. And this is something that we hear that our customers value a lot — they know and they can trust the fact that we steward this project, and that we keep it going and keep evolving it.”
How can the open source spirit jive with one of the biggest corporations in the world?
“With this project specifically, we started and we do everything in the open.” Amorosi continued to explain that, while AWS owns the governance of the project, “all our processes, all our development efforts, everything is in the open. So anyone can really go on our GitHub repos and understand what we’re doing, how issues and how features are prioritized. They can contribute in different ways.”
A lot of so-called open source projects are slow to build communities because they only allow directed contributions to specific issues in isolation. With Powertools, Damascena explained, you can even contribute to the request for comments, allowing the community to drive and influence the product roadmap. AWS customers can also contribute to the documentation, something which takes high priority for the Powertools project.
One of the benefits of having the backing of such a large organization is that there are open source maintainers paid to help provide support. Because a common problem in OSS communities is figuring out where to start contributing. Powertools offers one-on-one sessions and a Discord to help newcomers find their way — because every contributor brings a different experience and requires different levels of onboarding. Also notable is that an international team supports the project, meaning an ability to get that support in five or six different languages — not just English — and across timezones.
Indeed, this intentional open source inclusion seems to be flourishing. At this point, 40% of new Powertools features have been contributed by the community.
Bonus, this all means contributors get a chance to network with a highly coveted FAANG employer. In fact, this is how Damascena came to work at AWS. First, he was a user, then a Powertools consultant in Brazil, and now a teammate for over a year now. As he said, “That’s the power of open source.”