Posts on Serverless

Recently, I found myself having to develop a complex lambda function that required a lot of iteration and the need for interactive debugging. Iterating on lambda functions can be painful due to the amount of time it takes to re-deploy an update to lambda and trying to attach a debugger to lambda just isn’t an option. If you find yourself re-de...

When starting a prototype, it’s easy to get lost in the weeds before anything is built. What helps me before writing code is to outline a build plan that clarifies: What is the simplest approach to build an initial concept? What valuable features reach beyond the basics? How can they be progressively implemented? What architectural resources w...

By now we’ve all read Martin Fowler’s Strangler Pattern approach to splitting up monolithic applications. It sounds wonderful, but in practice it can be tough to do, particularly when you’re under a time crunch to enable shiny new “modern” features at the same time.
An example I’ve seen several times now is going from an older, on-prem, or in g...

This is the story of how running a too small Postgres RDS instance caused a 10X increase in our daily AWS Lambda costs.
It was Valentine’s day. I’d spent a good chunk of the week working on an internal business application which I’d built using serverless architecture. This application does several million function invocations per month and s...

State machines are useful mechanisms for decoupling logic flow from computation. They can be used to refactor complex spaghetti code into easy, understandable statements and diagrams. Further, state machines are built upon a mathematical model, which provides the ability to “prove” whether they correctly implement desired functionality.
A lit...

Debugging serverless applications can be very hard. Often, the traditional tools and methodologies that are commonly used in monolithic applications don’t work (easily, at least). While each service is smaller and easier to fully understand and test, a lot of the complexity and issues are now found in the interconnections between the micro-serv...

It’s no surprise that the rise of connected devices and the Internet of Things is coinciding with the movement toward Functions-as-a-Service and serverless computing. Serverless, and its near-cousin “edge computing,” are both paradigms of pairing compute with event triggers and IoT opens the door for a whole new breed of event triggers.
In th...

The debut of AWS Lambda in 2014 spawned a debate: serverless vs Docker. There have been countless articles comparing cost efficiency, performance, constraints, and vendor lock-in between the two technologies.
Thankfully, the second half of 2017 has shown this all to be a bit beside the point. With recent product announcements from Azure and A...