Newman
AWSLambdaJavaSnapStart | Newman | |
---|---|---|
18 | 252 | |
5 | 6,738 | |
- | 0.7% | |
9.1 | 7.5 | |
8 days ago | 9 days ago | |
Java | JavaScript | |
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
AWSLambdaJavaSnapStart
-
Spring Boot 3 application on AWS Lambda - Part 4 Measuring cold and warm starts with AWS Serverless Java Container
In the part 2 of the series we introduced AWS Serverless Java Container and in the part 3 we demonstrated how to write AWS Lambda with AWS Serverless Java Container using Java 21 and Spring Boot 3.2. In this article of the series, we'll measure the cold and warm start time including enabling SnapStart on the Lambda function but also applying various priming techniques like priming the DynamoDB invocation and priming the whole web request. We'll use Spring Boot 3.2 sample application for our measurements, and for all Lambda functions use JAVA_TOOL_OPTIONS: "-XX:+TieredCompilation -XX:TieredStopAtLevel=1" and give them all 1024 MB memory.
-
AWS SnapStart - Part 19 Measuring cold starts and deployment time with Java 17 using different Lambda memory settings
In our experiment we'll re-use the application introduced in part 8 for this. Here is the code for the sample application. There are basically 2 Lambda functions which both respond to the API Gateway requests and retrieve product by id received from the Api Gateway from DynamoDB. One Lambda function GetProductByIdWithPureJava17Lambda can be used with and without SnapStart and the second one GetProductByIdWithPureJava17LambdaAndPriming uses SnapStart and DynamoDB request invocation priming. We'll measure cold starts using the following memory settings in MBs : 256, 512, 768, 1024, 1536 and 2048.
-
Spring Boot 3 application on AWS Lambda - Part 3 Develop application with AWS Serverless Java Container
For the sake of explanation we'll use our Spring Boot 3.2 sample application and use Java 21 runtime for our Lambda functions.
-
AWS SnapStart - Part 18 Measuring cold starts with Java 17 using different deployment artifact sizes
Medium Size application with DynamoDB persistence. We'll re-use the application introduced in part 8 for this. There are basically 2 Lambda functions which both respond to the API Gateway requests and retrieve product by id received from the API Gateway from DynamoDB. One Lambda function can be used with and without SnapStart and the second one uses SnapStart and DynamoDB request invocation priming. There are bunch of dependencies declared in pom.xml like aws-lambda-java-core, aws-lambda-java-events, slf4j-simple, crac, dynamodb and url-connection-client. The deployment size of such application is 15 MB.
-
Spring Boot 3 application on AWS Lambda - Part 2 Introduction to AWS Serverless Java Container
and others will be a part of a separate project and therefore also used without the usage of the all other AWS Serverless Java Container APIs only for purpose of mocking the API Gateway Request/Response (i.e. for Priming). I've already used them for Priming requests for Quarkus and Micronaut frameworks. Dependency to the AWS Serverless Java Container was included by default for the Micronaut on AWS Lambda SnapStart Priming example and needed to be added explicitly for the Quarkus on AWS Lambda SnapStart Priming example only to implement web request priming. We'll make use of these abstractions in one of our subsequent articles when we'll discuss cold and warm start time improvements for Spring Boot 3 application on AWS Lambda using AWS Lambda SnapStart in conjunction with priming techniques.
-
AWS SnapStart - Part 16 Measuring cold and warm starts with Java 21 using different asynchronous HTTP clients
Using the asynchronous DynamoDBClient means that we'll be using the asynchronous programming model, so the invocation of getItem will return CompletableFuture and this is the code to retrieve the item itself (for the complete code see)
-
AWS SnapStart - Part 15 Measuring cold and warm starts with Java 21 using different synchronous HTTP clients
Let's figure out how to configure the HTTP Client. There are 2 places to do it : pom.xml and DynamoProductDao
-
AWS SnapStart - Part 13 Measuring warm starts with Java 21 using different Lambda memory settings
In our experiment we'll re-use the application introduced in part 9 for this. There are basically 2 Lambda functions which both respond to the API Gateway requests and retrieve product by id received from the API Gateway from DynamoDB. One Lambda function GetProductByIdWithPureJava21Lambda can be used with and without SnapStart and the second one GetProductByIdWithPureJava21LambdaAndPriming uses SnapStart and DynamoDB request invocation priming. We'll measure cold and warm starts using the following memory settings in MBs : 256, 512, 768, 1024, 1536 and 2048. I also put the cold starts measured in the part 12 into the tables to see both cold and warm starts in one place. The results of the experiment below were based on reproducing more than 100 cold and approximately 100.000 warm starts for the duration of our experiment which ran for approximately 1 hour. Here is the code for the sample application. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. Abbreviation c is for the cold start and w is for the warm start.
-
AWS SnapStart - Part 11 Measuring cold starts with Java 21 using different deployment artifact sizes
Small HelloWorld-style application which consists of Lambda receiving the APIGateway request with product id and basically prints this id out. There is no persistence layer involved. The application is that simple, that there is now priming to be applied. There are only several dependencies declared in pom.xml like aws-lambda-java-core and slf4j-simple. The deployment artifact size of such application is 137 KB only.
-
Measuring Lambda cold starts with AWS SnapStart - Part 8 Measuring with Java 17
For measurement purposes I created/copied the sample application and configured Lambda functions to use Java 17 runtime for Lambda and 1024 MB memory .
Newman
-
AWS SnapStart - Part 20 Measuring warm starts with Java 17 using different Lambda memory settings
I also put the cold starts measured in the part 19 into the tables to see both cold and warm starts in one place. The results of the experiment below were based on reproducing more than 100 cold and approximately 100.000 warm starts for the duration of our experiment which ran for approximately 1 hour. Here is the code for the sample application. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. Abbreviation c is for the cold start and w is for the warm start.
-
Data API for Amazon Aurora Serverless v2 with AWS SDK for Java - Part 6 Comparing cold and warm starts between Data API and JDBC
The results of the experiments to retrieve the existing product from the database with all approaches by its id with Lambda functions with 1024 MB memory setting were based on reproducing more than 100 cold and approximately 10.000 warm starts with experiment which ran for approximately 1 hour. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. We won't enable SnapStart on the Lambda functions first.
-
How to Add Firebase Authentication To Your NodeJS App
There are several testing approaches you can take to ascertain the functionality of the auth API. One way would be to automate the testing using unit tests with tools like Jest and Supertest. Alternatively, you can make use of API clients like Postman or the Thunder Client VS Code extension to test the API.
-
Leveraging Zoom WebSockets with Postman for Real-Time Interactivity - POSTCON 2024
I'm excited to be speaking at POSTCON, where I will dive into the world of real-time data using Zoom's innovative WebSockets. We'll seamlessly test these functionalities with the help of POSTMAN. This session is designed to give you a glimpse into how we at Zoom are enhancing the real-time capabilities of our platform to ensure faster, more reliable communication. During this session, we'll explore the limitations with Webhooks and why WebSockets are becoming a preferable alternative for real-time, bi-directional communication.
-
Spring Boot 3 application on AWS Lambda - Part 4 Measuring cold and warm starts with AWS Serverless Java Container
The results of the experiment below were based on reproducing more than 100 cold and approximately 100.000 warm starts with Lambda function with 1024 MB memory setting for the duration of 1 hour. For it I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman.
-
API Inspection Best Practices: Ensuring API Gateway Stability and Efficiency
Testing Tools: Select suitable automated testing tools, such as OWASP Zap and Postman, for security and functionality testing.
-
Software Engineering Workflow
Postman - API platform for easy endpoint testing
-
Data API for Amazon Aurora Serverless v2 with AWS SDK for Java - Part 5 Basic cold and warm starts measurements
The results of the experiment to retrieve the existing product from the database by its id see GetProductByIdViaAuroraServerlessV2DataApiHandler with Lambda function with 1024 MB memory setting were based on reproducing more than 100 cold and approximately 10.000 warm starts with experiment which ran for approximately 1 hour. For it (and experiments from my previous article) I used the load test tool hey, but you can use whatever tool you want, like Serverless-artillery or Postman. We won't enable SnapStart on the Lambda function first.
-
Building a RESTful API with Node.js and Express
Use tools like Postman or Insomnia to test the API endpoints and ensure they behave as expected.
-
Guide on authenticating requests with the REST API
Products are available on our Strapi server. We need to be able to send HTTP requests that will allow clients or users to perform CRUD operations on these product resources. Postman will be our tool for making requests to the Strapi REST API.
What are some alternatives?
serverless-java-frameworks-samples
postman-to-k6 - Converts Postman collections to k6 script code
serverless-java-container - A Java wrapper to run Spring, Spring Boot, Jersey, and other apps inside AWS Lambda.
Swagger Client - Javascript library to connect to swagger-enabled APIs via browser or nodejs
Hey - HTTP load generator, ApacheBench (ab) replacement
breeze.js - Breeze for JavaScript clients
Quarkus - Quarkus: Supersonic Subatomic Java.
oauth-signature-js - JavaScript OAuth 1.0a signature generator (RFC 5849) for node and the browser
Spring Boot - Spring Boot
bottleneck - Job scheduler and rate limiter, supports Clustering
spring-native - Spring Native is now superseded by Spring Boot 3 official native support
SWR - React Hooks for Data Fetching