{"id":15805133,"url":"https://github.com/ddobrin/serverless-production-readiness-java-gcp-original","last_synced_at":"2026-07-06T08:31:27.269Z","repository":{"id":184219657,"uuid":"654631756","full_name":"ddobrin/serverless-production-readiness-java-gcp-original","owner":"ddobrin","description":"Key production considerations for serverless applications in GCP","archived":false,"fork":false,"pushed_at":"2023-11-02T05:54:56.000Z","size":518,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-28T14:47:20.170Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/ddobrin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-16T14:58:49.000Z","updated_at":"2025-01-20T00:45:11.000Z","dependencies_parsed_at":"2024-08-27T15:27:27.171Z","dependency_job_id":null,"html_url":"https://github.com/ddobrin/serverless-production-readiness-java-gcp-original","commit_stats":null,"previous_names":["ddobrin/serverless-production-readiness-java-gcp"],"tags_count":0,"template":false,"template_full_name":"GoogleCloudPlatform/sample-repo-template","purl":"pkg:github/ddobrin/serverless-production-readiness-java-gcp-original","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fserverless-production-readiness-java-gcp-original","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fserverless-production-readiness-java-gcp-original/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fserverless-production-readiness-java-gcp-original/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fserverless-production-readiness-java-gcp-original/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddobrin","download_url":"https://codeload.github.com/ddobrin/serverless-production-readiness-java-gcp-original/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fserverless-production-readiness-java-gcp-original/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35184015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"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":[],"created_at":"2024-10-05T02:04:25.264Z","updated_at":"2026-07-06T08:31:27.244Z","avatar_url":"https://github.com/ddobrin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Serverless Production Readiness and Optimization for Java in Google Cloud\n\n\u003e **🧪 Status: living repo** - All code samples are deployable in Cloud Run `at all times` and will constantly be updated with new versions, features and use additional Google Cloud  Services.  \n\n**Description**\nThis material provides guidelines, best practices and samples focused on `production-ready, optimized, modern Java applications deployed in Cloud Run in GCP`\n\n## Features\nThere are multiple aspects to `writing effective services for serverless production environments` and they all revolve around the combination of service design, implementation, testing, configuration with environment configuration and optimization best practices.\n\nThe material dives into two areas: \n### How to think about production-readiness\nYou generally think that a **production-ready cloud service must be:**\n* Stable and Reliable\n* Scalable and Performant\n* Fault Tolerant without any single point of failure\n* Properly Monitored\n* Documented and Understood\n* Properly secured\n\n### How to think about optimization\nOptimizing any app for Cloud Run requires a balance of different aspects to be considered, therefore it is important to always have a clear picture of **what it is that you are optimizing for**:\n* start-up time\n* execution latency\n* resource consumption (memory \u0026 CPU)\n* concurrency\n* image size\n* easy maintainability\n* lower costs\n\n## Getting Started\nClone this Git repository:\n```shell\ngit clone https://github.com/ddobrin/serverless-production-readiness-java-gcp.git\n```\nor open the repo directly in Cloudshell:\n\n[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://ssh.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https://github.com/ddobrin/serverless-production-readiness-java-gcp.git)\n\n### Prerequisites\n* `Machine`:\n  * The code is constantly being tested on MacBooks and Linux environments\n  * Test in your Windows machine, if preferred\n* The `IDE` of your choice\n* `Java 17` - latest LTS \n  * Install via [SDKMan](https://sdkman.io/install) or your favorite package manager\n* `GraalVM` for building Native Java Images \n  * Install via SDKMan - `sdk install java 17.0.7-graal`\n  * Install directly from [GraalVM Download](https://www.graalvm.org/downloads/) site\n* `API Testing`\n  * Use [cURL](https://curl.se/) or\n  * [HTTPie](https://httpie.io/)\n\n### Sample services \nA set of services is provided to illustrate the various concepts, following the architecture below.\n\nAll services are documented and can be built from a single script as per [README.md](services/README.md) in the `services` folder.\n\nEach service can be built/tested/deployed individually or as part of the entire architecture\n* [Quotes](services/quotes/README.md) Service - manage quotes from famous books, persisted in CloudSQL (Postgres)\n* [Audit](services/audit/README.md) Service - audit updates (persisted in Firestore)\n* [Reference](services/reference/README.md) Service - invoked by BFF service at start-up, to read reference data\n* [Faulty](services/faulty/README.md) Service - illustrate a faulty service for resiliency purposes\n* [BFF](services/bff/README.md) Service - Backend-for-frontend service for downstream services\n\n![App](images/prod-readiness1.png)\n\n## Contributing\n\nContributions to this library are always welcome and highly encouraged.\n\nSee [CONTRIBUTING](CONTRIBUTING.md) for more information how to get started.\n\nPlease note that this project is released with a Contributor Code of Conduct. By participating in\nthis project you agree to abide by its terms. See [Code of Conduct](CODE_OF_CONDUCT.md) for more\ninformation.\n\n## License\n\nApache 2.0 - See [LICENSE](LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddobrin%2Fserverless-production-readiness-java-gcp-original","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddobrin%2Fserverless-production-readiness-java-gcp-original","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddobrin%2Fserverless-production-readiness-java-gcp-original/lists"}