Building a Serverless App with AWS Lambda, S3, DynamoDB & API Gateway

What is AWS Lambda? AWS Lambda is an on demand compute service, where code is invoked in response to certain events. Events can originate internally from other AWS services, for example, a file upload to an S3 bucket, or externally from your own applications via HTTP. Lambda functions can be written in any of the supported runtimes. At the time of writing, Lambda supports Python, NodeJS, C# and Java. Unlike a traditional server side application, a Lambda function is not a continuously running process that waits for incoming requests. When Lambda receives an event trigger, it spins up a new process, runs the function and then rips the process down again. In other words, the lambda function is only deployed for the duration of the invocation and is then terminated. When a new event occurs, a new process is created to execute the function for that specific event.
Why use Lambda?The Lambda runtime is fully managed by AWS. Once a function is uploaded and configured, Lambda is responsible f…

Health Checks, Metrics & More with Spring Boot Actuator

I've been working with Spring Boot for a few years now and I'm a big fan. There are lots of things to like about Spring Boot, but one thing that really stands out for me is the emphasis on production readiness.
Production Readiness Production readiness is about looking beyond functional requirements and ensuring your application can be properly managed and monitored in production. Some key things to consider when thinking about production readiness are...
Health checksViewing application configuration - application properties, Environment variables etc. Viewing and altering log configurationViewing application metrics - JVM, classloader, threading and garbage collection. Audibility of key application events Spring provides all of this functionality out of the box via Spring Boot Actuator, a sub project of Spring Boot. A range of RESTful management and monitoring endpoints are provided so you don't have to implement these features each time you build an application. To enable…