A few years ago, an incredible new service was released on Amazon Web Services based on these new cloud computing capabilities and the concept of “Functions as a Service.” Amazon dubbed its implementation of FaaS “Lambda” and the term became fairly popular in technology circles. It wasn’t long before these new “functions” were adapted to build complete backend web applications like near-infinitely scalable APIs, which had no physical servers and required very little (if any) hands-on human support.
The Scalambda Project
API technology is based on this new architectural “serverless” paradigm. However, it is still highly experimental and lacks standardized tooling to make it available, reusable and easy to replicate. Carpe Data decided to build its own AWS Lambda tooling that would allow them to create and deploy a completely new production-ready and highly available backend API in mere minutes.
Their goal was to:
- Allow anybody to deploy an API to AWS easily
- Simplify configuration and optimization of Lambda Functions
- Speed up the time-to-market of new projects by providing as many sensible defaults as they could
- Give developers as much freedom as possible so they can be free to experiment with new ideas
After a year of internal scrutiny, Carpe Data launched Scalambda, aiming to help freelancers, startups and well-established companies alike develop and deploy their ideas to production with only a few steps.
What started as an internal-only project was shared with the world. Over the course of its lifetime, it has received a lot of feedback and refinement from several of its teams and friends. Thanks to their efforts, Scalambda is now a solution that is an incredibly powerful tool.
The nitty-gritty of Scalambda
Scalambda itself is composed of three separate libraries. Each of them can be used independently depending on your project’s use case and your team’s toolchain.
- sbt-scalambda: An SBT plugin that should help you to deploy your lambdas, managing libraries, logging and much more.
- scalambda-core: A traditional library that provides utilities for writing Scala-based Lambda Functions
- scalambda-testing: A set of test helpers for testing Lambda Functions
How to use Scalambda
Assuming you already have an AWS account and have installed sbt and Terraform, you can have a function deployed in less than 5 minutes (for real, we did it live during a few internal presentations to prove it).
The Giter8 template is by far the quickest way to get started with Scalambda, but adding Scalambda to existing projects is easy enough. Just add Scalambda to your plugins.sbt file, give the guide for configuring functions a quick read, and you’ll be deploying functions in no time.
If you have any questions, check out our microsite or open an issue on our repository!
Contributing to the Scalambda community
As an open-source project, all contributors are welcome to join the Scalambda GitHub community. Whether you have a knack for technical documentation or you’re a cloud architecture wizard, help Carpe Data make Lambda functions simple and accessible for all!
Read more about the Scalambda Project on Carpe Data’s website.