{"id":15866892,"url":"https://github.com/pacovk/lambda-runtime-comparision","last_synced_at":"2026-05-01T13:33:02.927Z","repository":{"id":102999643,"uuid":"574420787","full_name":"PacoVK/lambda-runtime-comparision","owner":"PacoVK","description":"Choosing from a broad range of Lambda runtimes is challenging. This repo aims to give you an idea on how to easily benchmark your serverless use case.","archived":false,"fork":false,"pushed_at":"2022-12-05T09:24:45.000Z","size":229,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T21:25:13.040Z","etag":null,"topics":["aws","aws-lambda","benchmark","lambda","powertuning","serverless"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PacoVK.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-05T09:20:24.000Z","updated_at":"2022-12-05T09:25:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"209ce82c-cf05-445c-a65a-78f6fde38e38","html_url":"https://github.com/PacoVK/lambda-runtime-comparision","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PacoVK/lambda-runtime-comparision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacoVK%2Flambda-runtime-comparision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacoVK%2Flambda-runtime-comparision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacoVK%2Flambda-runtime-comparision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacoVK%2Flambda-runtime-comparision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PacoVK","download_url":"https://codeload.github.com/PacoVK/lambda-runtime-comparision/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacoVK%2Flambda-runtime-comparision/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32499681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","benchmark","lambda","powertuning","serverless"],"created_at":"2024-10-05T23:40:28.278Z","updated_at":"2026-05-01T13:33:02.898Z","avatar_url":"https://github.com/PacoVK.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Readme\n\nIf you decide to implement a system on AWS Lambda you can choose from a broad variety of runtimes\n(several native runtimes, Docker, custom build). It's quite hard to choose and configure the optimal runtime to operate\nthe most efficient solution.\nIt's worth to mention that not only **technical** aspects are relevant for choosing a runtime but also a lot of other\naspects like available knowledge in your team, corporate guidelines and some more. However, if you are about to make\na decision on the technology you want to use, I always encourage you to question your state of the art and elaborate on alternatives.\n\nFortunately you can easily profile your Lambda using the marvellous [Lambda Powertuning](https://github.com/alexcasalboni/aws-lambda-power-tuning).\nThis neat tool can be integrated easily into your infrastructure as code.\nThe repo aims to show how to integrate Lambda Powertuning in a [serverless](https://www.serverless.com/) project and\nprovides several examples to run benchmarks. All examples implement the same common use case (consume a message from a queue,\nprocess the data and flush the output into a database).\n\n## Structure\n\n- General Infrastructure like SNS/ Queues can be found at `infrastructure/`\n- Base config is `serverless.yml`\n- All Lambda specific configs are alongside the Lambdas sourcecode in the respective `_config.yml` (eg. `golang/_config.yml`)\n\n## Architecture\n\nEach language/ framework implements the following architecture. All lambdas read the SQS message and persist the _body_\nin a DynamoDB.\n\n![Architecture](docs/architecture.png)\n\n## Runtimes\n\nCurrently, implementations for the following runtimes/ languages are provided:\n\n- **docker** (+ go binary)\n- **go** (go1.x)\n- **groovy** (Java 11)\n- **java** (Java 11)\n- **php** (using [bref](https://bref.sh/))\n- **[quarkus](https://quarkus.io/)** (provided runtime al.2)\n- **typescript** (node18.x)\n\n## Deployment\n\n### Prerequisites\n\n- NodeJS \u003e= 16.x\n- Docker\n- JDK 17\n\n### Build\n\n1. `yarn install`\n2. `yarn build`\n\n### Deploy\n\nThe stack will be deployed to region `eu-central-1`.\nIf you already build all artifacts, see aforementioned build section, you can skip steps 1 + 2\n\n1. `yarn install` (opt)\n2. `yarn build` (opt)\n3. `yarn deploy`\n\n### Clean up\n\nTo clean up, simply run `yarn destroy`\n\n## Benchmark\n\nAfter you deployed the stack, you are able to run benchmarks. \u003cbr/\u003e\nTo run a benchmark use `yarn benchmark \u003clambda-name\u003e`. \u003cbr/\u003e\nExample: `yarn benchmark golang` or `yarn benchmark docker`.\n\n## Contribution\n\nContributions welcome, if you feel something is missing, add a PR ;)\n\n### Test invocation\n\nYou can find data under `test/` to invoke Lambdas directly via SNS/SQS/Lambda (test invoke).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacovk%2Flambda-runtime-comparision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpacovk%2Flambda-runtime-comparision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacovk%2Flambda-runtime-comparision/lists"}