Our book with O'Reilly - "Programming AWS Lambda"

Symphonia
Mike Roberts
Apr 1, 2020 · 5 min read

In late 2015 John and I had a challenge to solve. How would we:

  • Rebuild the entire data processing pipeline of a successful ad-tech company
  • To effectively handle the scale the company had now reached
  • While allowing the whole engineering organization to build features a lot more quickly
  • Enabling our largely Java-knowledgeable developers to continue to use their long-acquired skills
  • But with only a very small technical operations team

Our book, with an O'Reilly animal!

At the time Amazon Web Services (AWS) had just announced Java support for Lambda - their still fairly new-at-the-time “Functions-as-a-Service” serverless platform. We decided to try it out, along with some other services like Kinesis, and deeper use of S3, to see what would happen. And what did happen amazed us - we satisfied all of our needs in a way that made our engineering teams happy and effective.

In 2017 John and I started Symphonia, taking the lessons we'd learned about building serverless applications to organizations around the world.

And now we are thrilled to bring our experience building serverless applications on AWS with Lambda to you, with our new book from O'Reilly - Programming AWS Lambda.

Why we wrote the book

Within just a few weeks of John and I starting to use Lambda we saw how it could let teams build new features far faster than we’d ever seen before. By removing a lot of low-level aspects of developing and running systems, and instead focusing on a clean, event-driven approach, we realized that many of the complexities that got in the way of our teams no longer applied when using Lambda. Lambda also let us amplify our use of the rest of the AWS platform—it had a multiplicative impact on our effectiveness.

We initially had two concerns about Lambda though - that it wouldn’t support the programming knowledge and software inventory that we’d built over the years in Java and that it would be far too expensive to run at scale.

What we found instead surprised us.

Lambda’s support for Java was not merely an “add on.” In fact, Java is a first-class runtime within the Lambda platform. Building Lambda applications in Java freed us to get back to the essence of programming, letting us use our skills and existing code.

Further, Lambda turned out to be less, not more, expensive to run than equivalent, traditionally built systems. The efficiency of Lambda’s “pay-per-use” model, to sub-second precision, allowed us to create systems that processed hundreds of millions of events per day and yet were cheaper than their predecessors.

This combination of speed of development, embrace of existing languages, and cost effectiveness led us to believe that serverless compute platforms, with Lambda at their forefront, were the start of something special in our industry.

Who The Book Is For

“Programming AWS Lambda” is intended primarily for software developers and software architects, but it will be useful to anyone involved in the technical aspects of building software applications in the cloud.

We assume that you already know or can learn the basics of the Java programming language. You don’t need to have knowledge of, or experience with, any Java application frameworks (like Spring) or libraries (like Guava). And we don't assume that you have any prior knowledge of Amazon Web Services.

Why You Need The Book

In many ways serverless, and Lambda with it, is one of the most significant changes to building server-side software in decades. While our code may look similar line by line, and perhaps even class by class, to how it was written before, the architectural constraints and capabilities of Lambda drive designs that have a very different shape than what you’ve seen in the past.

Over the last five years John and I have come to understand how to successfully build systems with Lambda. This book will give you a jump-start into learning these same lessons.

From getting started techniques to advanced architecture, from programming and testing to deployment and monitoring, we cover the lifecycle of what you need to understand to build production-quality systems with Lambda at scale.

What makes this book unique is we do all of this in the context of the Java programming language. We’ve both been Java programmers for more than two decades each, so in this book we help you use your existing Java skills in a whole new way.

How to read the book

Our book is available on Amazon, other online sellers, and we look forward to seeing it in bookstores soon.

Alternatively If you have an O'Reilly Learning account (formerly known as Safari), or you want to try O'Reilly Learning out free, then you can read our book there.

Thanks!

This book has been two years in the making. We're extremely grateful to all the folks at O'Reilly who've helped us; we are supremely thankful to our technical reviewers Brian Gruber, Daniel Bryant, Sarah Wells and Stuart Sierra; and we're honored that Tim Wagner - the creator and original custodian of Lambda - wrote our foreword.

And it goes without saying we are both very grateful to our wives for supporting us through this effort.

We hope you enjoy the book and find it useful. Please email us at johnandmike@symphonia.io, or message us on twitter, if you'd like to get in touch.

Go serverless!