{"id":34899805,"url":"https://github.com/guyzsarun/gemfire-spring-poc","last_synced_at":"2026-04-12T14:40:55.583Z","repository":{"id":42473957,"uuid":"429725813","full_name":"guyzsarun/gemfire-spring-poc","owner":"guyzsarun","description":null,"archived":false,"fork":false,"pushed_at":"2022-04-04T06:53:35.000Z","size":97,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-07T18:02:50.353Z","etag":null,"topics":["concourse","gemfire","geode","kubernetes","spring","springboot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guyzsarun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-19T08:39:46.000Z","updated_at":"2023-02-08T10:36:35.000Z","dependencies_parsed_at":"2022-08-19T08:50:26.188Z","dependency_job_id":null,"html_url":"https://github.com/guyzsarun/gemfire-spring-poc","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/guyzsarun/gemfire-spring-poc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyzsarun%2Fgemfire-spring-poc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyzsarun%2Fgemfire-spring-poc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyzsarun%2Fgemfire-spring-poc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyzsarun%2Fgemfire-spring-poc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guyzsarun","download_url":"https://codeload.github.com/guyzsarun/gemfire-spring-poc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guyzsarun%2Fgemfire-spring-poc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28050355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-26T02:00:06.189Z","response_time":55,"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":["concourse","gemfire","geode","kubernetes","spring","springboot"],"created_at":"2025-12-26T08:36:58.524Z","updated_at":"2025-12-26T08:37:04.110Z","avatar_url":"https://github.com/guyzsarun.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TanzuGemfire-SpringBoot-POC\n\n![CI](http://guy-k8s.eastus.cloudapp.azure.com/api/v1/teams/main/pipelines/master/badge)\n\n## Project Structure\n\n    .\n    ├── ci                            # Concourse CI Configuration\n    ├── gemfire-backend               # SpringBoot Application\n    ├── gemfire-cluster               # Gemfire Cluster on Kubernetes\n    ├── k8s                           # Kubernetes Cluster Configuration\n    │\n    └── README.md\n\n## Installation\n\nClone the repo from Github\n\n```\ngit clone https://github.com/guyzsarun/gemfire-spring-poc.git\n```\n\n## Usage\n\n### Run using Java Springboot\n\nUpdate api secret in `application.properties` ( Refer to `example.application.properties` )\u003cbr\u003e\nMovie API from [RapidAPI](https://rapidapi.com/apidojo/api/imdb8/)\n\n```\napi.rapid.host=\napi.rapid.key=\n```\n\n### Run using Docker\n\nUpdate api secret in `gemfire-backend/docker-compose.yaml` then run the following command:\n\n```\ncd gemfire-backend\ndocker-compose up\n```\n\n### Run using k8s\n\nCreate secret and attach to Kubernetes Cluster (Refer to `example.movie-secret.yaml`) then\n\n```\nkubectl apply -f ./k8s\n```\n\n## Starting Gemfire on Kubernetes\n\nInstall cert-manager\n\n```\nkubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml\n```\n\nCreate Gemfire Operator ( Download [Tanzu Gemfire for k8s](https://network.pivotal.io/products/tanzu-gemfire-for-kubernetes/)) and Update docker-secret.yaml (Refer to `example.docker-secret`)\n\n```\n kubectl create namespace gemfire-operator\n kubectl apply -n gemfire-operator -f ./gemfire-cluster/docker-secret.yaml\n\n helm install gemfire-operator gemfire-operator-1.0.0.tgz -n gemfire-operator\n```\n\nCreate Gemfire Cluster\n\n```\n  kubectl create namespace gemfire-cluster\n  kubectl apply -n gemfire-cluster -f ./gemfire-cluster\n```\n\nCreate storage region using `gfsh` command\n\n```sh\ncreate region --name=movie --type=REPLICATE_HEAP_LRU --entry-idle-time-expiration=3600 --enable-statistics\n```\n\n## API\n\nSpringBoot backend available at http://localhost:8080/api/movie \u003cbr\u003e\nSwagger documentation available at http://localhost:8080/docs.html\n\n### Example Response\n\n#### Request\n\n`GET /api/movie/`\n\n```sh\ncurl --location --request GET 'localhost:8080/api/movie?name=avatar'\n```\n\n#### Response\n\n```yaml\n{\n  \"movie\":\n    [\n      {\n        \"id\": \"tt0499549\",\n        \"title\": \"Avatar\",\n        \"year\": \"2009\",\n        \"duration\": \"162 minutes\",\n        \"poster\": \"https://m.media-amazon.com/images/M/MV5BMTYwOTEwNjAzMl5BMl5BanBnXkFtZTcwODc5MTUwMw@@._V1_.jpg\",\n        \"rating\": \"7.8\",\n        \"ratingCount\": \"1173261\",\n        \"plot\": \"A paraplegic Marine dispatched to the moon Pandora on a unique mission becomes torn between following his orders and protecting the world he feels is his home.\",\n        \"cast\":\n          [\n            { \"originalName\": \"Sam Worthington\", \"movieName\": \"Jake Sully\" },\n            { \"originalName\": \"Zoe Saldana\", \"movieName\": \"Neytiri\" },\n            {\n              \"originalName\": \"Sigourney Weaver\",\n              \"movieName\": \"Dr. Grace Augustine\",\n            },\n          ],\n      },\n    ],\n  \"delay(ms)\": 46,\n}\n```\n\n## Concourse CI\n\nUpdate docker credentials in `ci/settings.yaml`\n\n```sh\nfly -t gemfire-spring set-pipeline --pipeline {pipeline-name} --config ./ci/pipeline.yaml -l ./ci/settings.yaml\n```\n\n## Resources\n\n\u003cimg src=\"https://spring.io/images/spring-logo-9146a4d3298760c2e7e49595184e1975.svg\" width=\"150\" \u003e\n\n[Springboot](https://spring.io/)\n\n\u003cimg src=\"https://tanzu.vmware.com/developer/images/icons/icon-tanzu-gemfire.svg\" height=\"70\" \u003e\n\n[VMware Tanzu Gemfire](https://tanzu.vmware.com/gemfire)\n\n\u003cimg src=\"https://concourse-ci.org/images/logo-white.svg\" height=\"70\" \u003e\n\n[Concourse CI](https://concourse-ci.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguyzsarun%2Fgemfire-spring-poc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguyzsarun%2Fgemfire-spring-poc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguyzsarun%2Fgemfire-spring-poc/lists"}