[{"data":1,"prerenderedAt":402},["ShallowReactive",2],{"content-svc-lambda-guides-effectively-running-java-on-serverless-load":3},{"markdown":4,"frontMatterAttributes":5,"bodyRaw":19,"menu":20,"menuType":393,"isCollapseableMenu":23,"nextDocItem":301,"previousDocItem":281,"contributorPaths":394,"contentName":401,"slug":297,"readingTime":37},"\u003Cp>Load testing a serverless application is a key factor for building production grade applications. With load tests, you can easily\nsynthesize a production environment by understanding and applying the same traffic patterns that you expect from your existing applications \nrunning in production.\u003C\u002Fp>\n\u003Cp>This testing strategy helps you to adapt your serverless architecture, way in advance, to handle traffic spikes avoiding any surprises. \u003C\u002Fp>\n\u003Ch4>Understanding application at scale\u003C\u002Fh4>\n\u003Cp>Lambda functions scale at a faster rate; however, your application will have a database component which also has to scale accordingly to \nserve your end customers without any problems. Throttling can happen at the API Gateway, or Lambda function, or at the database level.\nUnderstanding those choke points and architecting around them becomes feasible when you provide and execute load tests.\u003C\u002Fp>\n\u003Cp>Take this simple API as an example:\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fassets\u002Fexternal\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fassets\u002Ftesting_simple_api.png\" alt=\"TestingSimpleApi\">\u003C\u002Fp>\n\u003Cp>Writing a load test for this application will eventually execute an end-to-end tests at a higher scale.\u003C\u002Fp>\n\u003Ch4>Using Artillery\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.artillery.io\u002F\">Artillery\u003C\u002Fa> is a tool which can be easily used to run load tests. The configuration to run load test in Artillery \nwould look like below:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-yaml\">## load-test.yml\nconfig:\n  phases:\n    - duration: 60\n      arrivalRate: 100\n  processor: &quot;.\u002FloadTestData.js&quot;\n\nscenarios:\n  - name: &quot;Create Products&quot;\n    flow:\n      - post:\n          url: &quot;\u002Fticket&quot;\n          beforeRequest: generateRandomTicketData\n          json:\n            userId: &quot;{{ userId }}&quot;\n            description: &quot;{{ description }}&quot;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Assuming that you have installed Artillery in your local setup, now you can run the load test by calling:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">artillery run load-test.yml --target $API_URL\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Once tests are complete, you can assess and monitor metrics like:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Cold start durations in CloudWatch logs at P0 till P99\u003C\u002Fli>\n\u003Cli>AWS X-Ray segment map for choke points\u003C\u002Fli>\n\u003Cli>Number of concurrent Lambda function executions\u003C\u002Fli>\n\u003Cli>and more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Other tools\u003C\u002Fh4>\n\u003Cp>You are not limited to using just Artillery. Here are some of the other load testing tools that can be used:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgatling.io\u002F\">Gatling\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fjmeter.apache.org\u002F\">Apache JMeter\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Flocust.io\u002F\">Locust\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>and many more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can learn more about running load tests from \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-test-samples\u002Ftree\u002Fmain\u002Fjava-test-samples\u002Fapigw-lambda-ddb\u002Fload-test\">serverless-test-samples\u003C\u002Fa>.\u003C\u002Fp>\n",{"title":6,"order":7,"authors":8,"callout":10,"resources":14},"Load Testing",8,[9],"Dhiraj Mahapatro",{"title":11,"description":12,"link":13},"Read the Serverless testing guide","This guide dives deeper into Serverless testing","https:\u002F\u002Fserverlessland.com\u002Ftesting",[15],{"link":16,"text":17,"type":18},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-test-samples\u002Ftree\u002Fmain\u002Fjava-test-samples","Serverless Java test samples","GitHub","Load testing a serverless application is a key factor for building production grade applications. With load tests, you can easily\nsynthesize a production environment by understanding and applying the same traffic patterns that you expect from your existing applications \nrunning in production.\n\nThis testing strategy helps you to adapt your serverless architecture, way in advance, to handle traffic spikes avoiding any surprises. \n\n#### Understanding application at scale\nLambda functions scale at a faster rate; however, your application will have a database component which also has to scale accordingly to \nserve your end customers without any problems. Throttling can happen at the API Gateway, or Lambda function, or at the database level.\nUnderstanding those choke points and architecting around them becomes feasible when you provide and execute load tests.\n\nTake this simple API as an example:\n\n![TestingSimpleApi](\u002Fassets\u002Fexternal\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fassets\u002Ftesting_simple_api.png)\n\nWriting a load test for this application will eventually execute an end-to-end tests at a higher scale.\n\n#### Using Artillery\n[Artillery](https:\u002F\u002Fwww.artillery.io\u002F) is a tool which can be easily used to run load tests. The configuration to run load test in Artillery \nwould look like below:\n\n```yaml\n## load-test.yml\nconfig:\n  phases:\n    - duration: 60\n      arrivalRate: 100\n  processor: \".\u002FloadTestData.js\"\n\nscenarios:\n  - name: \"Create Products\"\n    flow:\n      - post:\n          url: \"\u002Fticket\"\n          beforeRequest: generateRandomTicketData\n          json:\n            userId: \"{{ userId }}\"\n            description: \"{{ description }}\"\n```\n\nAssuming that you have installed Artillery in your local setup, now you can run the load test by calling:\n\n```bash\nartillery run load-test.yml --target $API_URL\n```\n\nOnce tests are complete, you can assess and monitor metrics like:\n- Cold start durations in CloudWatch logs at P0 till P99\n- AWS X-Ray segment map for choke points\n- Number of concurrent Lambda function executions\n- and more\n\n#### Other tools\nYou are not limited to using just Artillery. Here are some of the other load testing tools that can be used:\n\n- [Gatling](https:\u002F\u002Fgatling.io\u002F)\n- [Apache JMeter](https:\u002F\u002Fjmeter.apache.org\u002F)\n- [Locust](https:\u002F\u002Flocust.io\u002F)\n- and many more\n\nYou can learn more about running load tests from [serverless-test-samples](https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-test-samples\u002Ftree\u002Fmain\u002Fjava-test-samples\u002Fapigw-lambda-ddb\u002Fload-test).\n",[21,41,67,196,248,298,314,353,375],{"title":22,"collapsible":23,"isCollapsed":24,"content":25},"Introduction",false,true,[26],{"title":27,"order":28,"authors":29,"callout":30,"prerequisite":34,"time":37,"path":38,"id":39,"link":40},"Getting Started",1,[9],{"title":31,"description":32,"link":33},"Watch this video","This Devoxx Belgium 2023 presentation shows effectively running Java on Serverless","https:\u002F\u002Fyoutu.be\u002Fu3tgOE8qFjI?t=5549",[35,36],"Understanding of Java","Understanding of AWS Lambda","2 min","1-introduction","1-introduction.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002F1-introduction",{"title":42,"collapsible":23,"isCollapsed":24,"content":43},"History",[44,52,59],{"title":45,"order":46,"authors":47,"time":48,"path":49,"id":50,"link":51},"Evolution of Java",3,[9],"1 min","history","history.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fhistory",{"title":53,"order":54,"authors":55,"time":37,"path":56,"id":57,"link":58},"Evolution of Compute",4,[9],"compute","compute.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fcompute",{"title":60,"order":61,"authors":62,"time":37,"path":64,"id":65,"link":66},"Challenges",5,[9,63],"Maximilian Schellhorn","challenge","challenge.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fchallenge",{"title":68,"collapsible":23,"isCollapsed":24,"content":69},"Best Practices",[70,88,98,104,121,138,156,172,186],{"title":71,"order":72,"youtubeVideoID":73,"authors":74,"callout":76,"resources":79,"time":84,"path":85,"id":86,"link":87},"Lambda Snapstart",6,"ZbnAithBNYY",[75,9],"Vipan Kumar",{"title":31,"description":77,"link":78},"This serverless office hours session dives deeper into Lambda SnapStart.","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Y5b8_KToeDY",[80],{"link":81,"text":82,"type":83},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IIKe2dx9Ag0","Spring IO (Barcelona)","video","8 min","snapstart","snapstart.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fsnapstart",{"title":89,"order":72,"authors":90,"callout":91,"time":48,"path":95,"id":96,"link":97},"Tiered Compilation",[75],{"title":92,"description":93,"link":94},"Read this blog","This AWS blog explains Tiered compilation in details","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcompute\u002Fincreasing-performance-of-java-aws-lambda-functions-using-tiered-compilation\u002F","tiered-compilation","tiered-compilation.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Ftiered-compilation",{"title":99,"order":72,"authors":100,"time":48,"path":101,"id":102,"link":103},"Utilize initialization phase",[9],"init-heavy-lifting","init-heavy-lifting.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Finit-heavy-lifting",{"title":105,"order":72,"authors":106,"youtubeVideoID":108,"resources":109,"time":117,"path":118,"id":119,"link":120},"Using RDS Proxy",[107,9],"Sonali Jena","ZQOqmMn_8jw",[110,114],{"link":111,"text":112,"type":113},"https:\u002F\u002Faws.amazon.com\u002Fgetting-started\u002Fhands-on\u002Fset-up-shared-database-connection-amazon-rds-proxy\u002F","Shared DB connections with RDS Proxy","user guide",{"link":115,"type":113,"text":116},"https:\u002F\u002Fdocs.aws.amazon.com\u002FAmazonRDS\u002Flatest\u002FAuroraUserGuide\u002Frds-proxy.html","RDS Proxy","4 min","rds-proxy","rds-proxy.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Frds-proxy",{"title":122,"order":72,"authors":123,"callout":124,"prerequisite":128,"resources":130,"time":37,"path":135,"id":136,"link":137},"Choice of HTTP Clients",[75,9],{"title":125,"description":126,"link":127},"Read this Blog","This blog explains how AWS CRT HTTP Client offers faster startup time and small memory footprint","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdeveloper\u002Fannouncing-availability-of-the-aws-crt-http-client-in-the-aws-sdk-for-java-2-x\u002F",[129],"Before moving on to HTTP clients, the first and foremost requirement to improve performance in Lambda functions is to upgrade from AWS SDK Java v1 to AWS SDK Java v2 as soon as possible. Version 2 of the AWS SDK was released in Nov 2018 with a lot of performance upgrades.",[131],{"link":132,"type":133,"text":134},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdeveloper\u002Faws-sdk-for-java-2-x-released\u002F","blog","AWS SDK for Java v2","http-clients","http-clients.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fhttp-clients",{"title":139,"order":72,"authors":140,"youtubeVideoID":141,"resources":142,"time":117,"path":153,"id":154,"link":155},"Hexagonal Architecture",[75],"kRFg6fkVChQ",[143,147,150],{"link":144,"text":145,"type":146},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fprescriptive-guidance\u002Flatest\u002Fhexagonal-architectures\u002Fwelcome.html","Hexagonal architecture","guidance",{"link":148,"text":149,"type":133},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcompute\u002Fdeveloping-portable-aws-lambda-functions\u002F","Portable Lambda functions",{"link":151,"type":133,"text":152},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcompute\u002Fdeveloping-evolutionary-architecture-with-aws-lambda\u002F","Building evolutionary architecture on AWS Lambda","hexagonal","hexagonal.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fhexagonal",{"title":157,"order":72,"authors":158,"youtubeVideoID":160,"resources":161,"time":37,"path":169,"id":170,"link":171},"Powertools for AWS Lambda",[159],"Lavanya Tangutur","dH2GP6Lydj8",[162,166],{"link":163,"text":164,"type":165},"https:\u002F\u002Fgithub.com\u002Faws-powertools\u002Fpowertools-lambda-java","Powertools for AWS Lambda (Java)","github",{"link":167,"type":133,"text":168},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fopensource\u002Fsimplifying-serverless-best-practices-with-aws-lambda-powertools-java\u002F","Best practices with Powertools","powertools","powertools.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fpowertools",{"title":173,"order":72,"authors":174,"youtubeVideoID":175,"callout":176,"resources":180,"time":48,"path":183,"id":184,"link":185},"Lambda Power tuning ",[159,9],"z8wGSykEauI",{"title":177,"description":178,"link":179},"Watch the video","This video covers a variety of AWS Lambda performance and cost optimization techniques including use of Power tuning.","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=z8wGSykEauI",[181,182],{"link":111,"text":112,"type":113},{"link":115,"type":113,"text":116},"powertuning","powertuning.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fpowertuning",{"title":187,"order":72,"authors":188,"resources":189,"time":37,"path":193,"id":194,"link":195},"Using Graviton2",[9],[190],{"link":191,"text":192,"type":133},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcompute\u002Fmigrating-aws-lambda-functions-to-arm-based-aws-graviton2-processors\u002F","Using Arm-based Graviton2 processors","graviton","graviton.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fgraviton",{"title":197,"collapsible":23,"isCollapsed":24,"content":198},"Java frameworks",[199,213,222,238],{"title":200,"order":201,"authors":202,"resources":203,"time":37,"path":210,"id":211,"link":212},"Micronaut",7,[159,9],[204,207],{"link":205,"text":206,"type":18},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-java-frameworks-samples\u002Ftree\u002Fmain","Serverless Java Frameworks",{"link":208,"text":209,"type":18},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-patterns\u002Ftree\u002Fmain\u002Fapigw-lambda-rds-snapstart","Micronaut with RDS","micronaut","micronaut.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fmicronaut",{"title":214,"order":201,"authors":215,"resources":216,"time":37,"path":219,"id":220,"link":221},"Quarkus",[159,9],[217],{"link":205,"text":218,"type":18},"Quarkus sample application","quarkus","quarkus.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fquarkus",{"title":223,"order":201,"authors":224,"resources":225,"time":117,"path":235,"id":236,"link":237},"Spring",[159,63],[226,227,231],{"link":205,"text":218,"type":18},{"link":228,"text":229,"type":230},"https:\u002F\u002Fcatalog.workshops.aws\u002Fjava-on-aws-lambda\u002Fen-US","Java on AWS Lambda","workshop",{"link":232,"text":233,"type":234},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdevops\u002Fdeveloping-with-java-and-spring-boot-using-amazon-codewhisperer\u002F","Build Spring Boot using Amazon CodeWhisperer","Blog","springboot","springboot.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fspringboot",{"title":239,"order":201,"authors":240,"resources":241,"time":37,"path":245,"id":246,"link":247},"GraalVM Native Image",[159,9],[242,244],{"link":205,"text":243,"type":18},"GraalVM sample application",{"link":228,"text":229,"type":230},"graalvm","graalvm.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fgraalvm",{"title":249,"collapsible":23,"isCollapsed":23,"content":250},"Testing a Java application",[251,262,271,281,290],{"title":252,"order":7,"authors":253,"callout":255,"resources":256,"time":258,"path":259,"id":260,"link":261},"Testing Serverless",[254],"Lorenzo Micheli",{"title":11,"description":12,"link":13},[257],{"link":16,"text":17,"type":18},"3 min","testing","testing.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Ftesting",{"title":263,"order":7,"authors":264,"callout":265,"resources":266,"time":117,"path":268,"id":269,"link":270},"Unit Testing",[254],{"title":11,"description":12,"link":13},[267],{"link":16,"text":17,"type":18},"unit","unit.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Funit",{"title":272,"order":7,"authors":273,"callout":274,"resources":275,"time":277,"path":278,"id":279,"link":280},"Integration Testing",[254,9],{"title":11,"description":12,"link":13},[276],{"link":16,"text":17,"type":18},"5 min","integration","integration.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fintegration",{"title":282,"order":7,"authors":283,"callout":284,"resources":285,"time":258,"path":287,"id":288,"link":289},"Functional Testing",[254,9],{"title":11,"description":12,"link":13},[286],{"link":16,"text":17,"type":18},"functional","functional.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Ffunctional",{"title":6,"order":7,"authors":291,"callout":292,"resources":293,"time":37,"path":295,"id":296,"link":297},[9],{"title":11,"description":12,"link":13},[294],{"link":16,"text":17,"type":18},"load","load.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fload",{"title":299,"collapsible":23,"isCollapsed":24,"content":300},"Local Development",[301,308],{"title":302,"order":303,"authors":304,"time":48,"path":305,"id":306,"link":307},"IntelliJ",10,[9],"intellij","intellij.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fintellij",{"title":309,"order":303,"authors":310,"time":48,"path":311,"id":312,"link":313},"Visual Studio Code",[9],"vscode","vscode.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fvscode",{"title":315,"collapsible":23,"isCollapsed":24,"content":316},"Infrastructure as Code",[317,324,330,340],{"title":318,"order":319,"authors":320,"time":37,"path":321,"id":322,"link":323},"CloudFormation",9,[107],"cloudformation","cloudformation.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fcloudformation",{"title":325,"order":319,"authors":326,"time":277,"path":327,"id":328,"link":329},"AWS CDK",[107],"cdk","cdk.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fcdk",{"title":331,"order":319,"authors":332,"resources":333,"time":37,"path":337,"id":338,"link":339},"AWS SAM",[107],[334],{"link":335,"text":336,"type":133},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fcompute\u002Fbuilding-serverless-java-applications-with-the-aws-sam-cli\u002F","Java Serverless AWS SAM CLI","sam","sam.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fsam",{"title":341,"order":319,"authors":342,"resources":343,"time":37,"path":350,"id":351,"link":352},"Terraform",[9],[344,347],{"link":345,"type":18,"text":346},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-patterns\u002Ftree\u002Fmain\u002Fapigw-lambda-snapstart-terraform","Java sample with Terraform",{"link":348,"text":349,"type":113},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fserverless-application-model\u002Flatest\u002Fdeveloperguide\u002Fwhat-is-terraform-support.html","AWS SAM CLI Terraform support","terraform","terraform.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fterraform",{"title":354,"collapsible":23,"isCollapsed":24,"content":355},"Benchmarking",[356],{"title":357,"order":358,"youtubeVideoID":359,"authors":360,"resources":361,"time":48,"path":372,"id":373,"link":374},"Performance Benchmarking",11,"wmEIMWigXGc",[9],[362,364,366,369],{"link":363,"text":229,"type":230},"https:\u002F\u002Fcatalog.workshops.aws\u002Fjava-on-aws-lambda\u002Fen-US\u002F01-migration\u002F02-optimizations\u002Fbenchmark",{"link":205,"text":365,"type":18},"Benchmark: Micronaut, Quarkus, and SpringBoot",{"link":367,"text":368,"type":18},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-graalvm-demo","GraalVM native image on AWS Lambda Benchmarking",{"link":370,"text":371,"type":18},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fserverless-kotlin-demo","Benchmark Kotlin on Serverless","benchmark","benchmark.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fbenchmark",{"title":376,"collapsible":23,"isCollapsed":24,"content":377},"Migration",[378],{"title":379,"order":380,"authors":381,"youtubeVideoID":382,"resources":383,"time":48,"path":390,"id":391,"link":392},"Migration Guide",12,[9],"u3tgOE8qFjI",[384,388],{"link":385,"text":386,"type":387},"https:\u002F\u002Fserverlessland.com\u002Fcontent\u002Fservice\u002Flambda\u002Fpaved-path\u002Fjava-replatforming\u002Fintroduction","Java re-platforming guide","Guide",{"link":228,"text":229,"type":389},"Workshop","migration","migration.md","\u002Fcontent\u002Fservice\u002Flambda\u002Fguides\u002Feffectively-running-java-on-serverless\u002Fmigration","LIST",[395,396,397,398,399,400],"content\u002Fcontributors\u002Fdhiraj-mahapatro.json","content\u002Fcontributors\u002Fsonali-jena.json","content\u002Fcontributors\u002Flavanya-tangutur.json","content\u002Fcontributors\u002Fvipan-kumar.json","content\u002Fcontributors\u002Florenzo-micheli.json","content\u002Fcontributors\u002Fmaximilian-schellhorn.json","Effectively running Java on Serverless",1792665272800]